Patch #5 by Glenn Adams; see Bugzilla 49687 git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_ComplexScripts@1185530 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/build.xml b/build.xml index 805323c..2f28ceb 100644 --- a/build.xml +++ b/build.xml
@@ -257,7 +257,7 @@ <echo message="${jce.message}"/> <available property="jdk14.present" classname="java.lang.CharSequence"/> <fail message="${Name} requires at least Java 1.4!" unless="jdk14.present"/> - <available property="junit.present" classname="junit.framework.TestCase" classpathref="libs-tools-build-classpath"/> + <available property="junit.present" classname="org.junit.Test" classpathref="libs-tools-build-classpath"/> <condition property="junit.message" value="JUnit Support PRESENT"> <equals arg1="${junit.present}" arg2="true"/> </condition> @@ -839,7 +839,7 @@ </target> <target name="junit-complexscripts" depends="junit-compile" description="Runs FOP's JUnit complex scripts tests" if="junit.present"> <echo message="Running complex scripts tests for fop.jar"/> - <junit dir="${basedir}" haltonfailure="${junit.haltonfailure}" fork="${junit.fork}" errorproperty="fop.junit.error" failureproperty="fop.junit.failure" printsummary="${junit.printsummary}"> + <junit dir="${basedir}" errorproperty="fop.junit.error" failureproperty="fop.junit.failure"> <sysproperty key="basedir" value="${basedir}"/> <sysproperty key="jawa.awt.headless" value="true"/> <formatter type="brief" usefile="false" if="junit.formatter.brief.use"/> @@ -1510,6 +1510,24 @@ <arg line="-o ${test.dir}/java/org/apache/fop/complexscripts/bidi/BidiTestData.java"/> </java> </target> + <target name="resgen-complexscripts" depends="compile-java"> + <mkdir dir="${build.dir}/test-classes"/> + <javac destdir="${build.dir}/test-classes" includeAntRuntime="true" memoryMaximumSize="1024m"> + <src path="${test.dir}/java/org/apache/fop/complexscripts/"/> + <classpath> + <path refid="libs-build-classpath"/> + <pathelement location="${build.classes.dir}"/> + </classpath> + </javac> + <java classname="org.apache.fop.complexscripts.arabic.GenerateArabicTestData"> + <classpath> + <path refid="libs-build-classpath"/> + <pathelement location="${build.classes.dir}"/> + <pathelement location="${build.dir}/test-classes"/> + </classpath> + <arg line="-c"/> + </java> + </target> <!-- =================================================================== --> <!-- Special target for Gump --> <!-- =================================================================== -->
diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index 659df63..8e25103 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml
@@ -5,5 +5,6 @@ <suppress files="org/apache/fop/fonts/GlyphPositioningTable.java" checks="FileLengthCheck"/> <suppress files="org/apache/fop/fonts/truetype/TTFFile.java" checks="FileLengthCheck"/> <suppress files="org/apache/fop/layoutmgr/BidiUtil.java" checks="FileLengthCheck"/> + <suppress files="org/apache/fop/util/CharUtilities.java" checks="FileLengthCheck"/> <suppress files="org/apache/fop/Version.java" lines="40-50" checks="LineLengthCheck"/> </suppressions>
diff --git a/src/documentation/content/xdocs/trunk/configuration.xml b/src/documentation/content/xdocs/trunk/configuration.xml index e5469d0..aae3539 100644 --- a/src/documentation/content/xdocs/trunk/configuration.xml +++ b/src/documentation/content/xdocs/trunk/configuration.xml
@@ -152,6 +152,21 @@ <td>false</td> </tr> <tr> + <td>complex-scripts</td> + <td>attribute disabled (optional)</td> + <td> + If present and if an attribute 'disabled' is specified with the value 'false', then + complex script features are disabled. The same result can be obtained on an FOP + per-invocation basis by specifying a '-nocs' command line option when invoking FOP. + When complex script features are disabled, all bidirectional processing and complex + character to glyph mapping processing is disabled; in addition, the loading of + GDEF, GSUB, and GPOS advanced typographic tables is disabled for OpenType and + TrueType fonts. Unless disabled by this mechanism or by use of the '-nocs' command + line option, complex script features will be enabled by default. + </td> + <td>n/a</td> + </tr> + <tr> <td>default-page-settings</td> <td>n/a</td> <td>
diff --git a/src/foschema/fop-configuration.xsd b/src/foschema/fop-configuration.xsd index 9ceec17..af85115 100644 --- a/src/foschema/fop-configuration.xsd +++ b/src/foschema/fop-configuration.xsd
@@ -48,6 +48,11 @@ <xsd:attribute name="height" type="xsd:string"></xsd:attribute> </xsd:complexType> </xsd:element> + <xsd:element name="complex-scripts" minOccurs="0" + <xsd:complexType> + <xsd:attribute name="disabled" type="xsd:boolean"/> + </xsd:complexType> + </xsd:element> <xsd:element name="renderers" minOccurs="0"> <xsd:complexType> <xsd:sequence>
diff --git a/src/java/org/apache/fop/apps/FOUserAgent.java b/src/java/org/apache/fop/apps/FOUserAgent.java index 071066e..002e18c 100644 --- a/src/java/org/apache/fop/apps/FOUserAgent.java +++ b/src/java/org/apache/fop/apps/FOUserAgent.java
@@ -650,6 +650,24 @@ } /** + * Check whether complex script features are enabled. + * + * @return true if FOP is to use complex script features + */ + public boolean isComplexScriptFeaturesEnabled() { + return factory.isComplexScriptFeaturesEnabled(); + } + + /** + * Control whether complex script features should be enabled + * + * @param useComplexScriptFeatures true if FOP is to use complex script features + */ + public void setComplexScriptFeaturesEnabled(boolean useComplexScriptFeatures) { + factory.setComplexScriptFeaturesEnabled ( useComplexScriptFeatures ); + } + + /** * Activates accessibility (for output formats that support it). * * @param accessibility <code>true</code> to enable accessibility support
diff --git a/src/java/org/apache/fop/apps/FopFactory.java b/src/java/org/apache/fop/apps/FopFactory.java index 2aca8bf..18c84a0 100644 --- a/src/java/org/apache/fop/apps/FopFactory.java +++ b/src/java/org/apache/fop/apps/FopFactory.java
@@ -143,6 +143,10 @@ /** Page width */ private String pageWidth = FopFactoryConfigurator.DEFAULT_PAGE_WIDTH; + /** Complex scripts support enabled */ + private boolean useComplexScriptFeatures + = FopFactoryConfigurator.DEFAULT_COMPLEX_SCRIPT_FEATURES; + /** @see #setBreakIndentInheritanceOnReferenceAreaBoundary(boolean) */ private boolean breakIndentInheritanceOnReferenceAreaBoundary = FopFactoryConfigurator.DEFAULT_BREAK_INDENT_INHERITANCE; @@ -212,6 +216,19 @@ } /** + * Sets complex script support. + * @param value <code>true</code> to enable complex script features, + * <code>false</code> otherwise + */ + void setComplexScriptFeaturesEnabled(boolean value) { + this.useComplexScriptFeatures = value; + } + + boolean isComplexScriptFeaturesEnabled() { + return useComplexScriptFeatures; + } + + /** * Returns a new {@link Fop} instance. FOP will be configured with a default user agent * instance. * <p>
diff --git a/src/java/org/apache/fop/apps/FopFactoryConfigurator.java b/src/java/org/apache/fop/apps/FopFactoryConfigurator.java index 9097f23..4ed59d0 100644 --- a/src/java/org/apache/fop/apps/FopFactoryConfigurator.java +++ b/src/java/org/apache/fop/apps/FopFactoryConfigurator.java
@@ -69,6 +69,9 @@ /** Defines the default target resolution (72dpi) for FOP */ public static final float DEFAULT_TARGET_RESOLUTION = GraphicsConstants.DEFAULT_DPI; //dpi + /** Defines the default complex script support */ + public static final boolean DEFAULT_COMPLEX_SCRIPT_FEATURES = true; + private static final String PREFER_RENDERER = "prefer-renderer"; /** logger instance */ @@ -269,6 +272,13 @@ } } + // configure complex script support + Configuration csConfig = cfg.getChild("complex-scripts"); + if (csConfig != null) { + this.factory.setComplexScriptFeaturesEnabled + (!csConfig.getAttributeAsBoolean ( "disabled", false )); + } + // configure font manager new FontManagerConfigurator(cfg, baseURI).configure(factory.getFontManager(), strict);
diff --git a/src/java/org/apache/fop/area/Area.java b/src/java/org/apache/fop/area/Area.java index 640336c..435876d 100644 --- a/src/java/org/apache/fop/area/Area.java +++ b/src/java/org/apache/fop/area/Area.java
@@ -25,6 +25,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.fop.traits.BorderProps; +import org.apache.fop.traits.WritingModeTraitsGetter; // If the area appears more than once in the output // or if the area has external data it is cached @@ -467,6 +468,14 @@ } /** + * Sets the writing mode traits for this area. Default implementation + * does nothing. + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + } + + /** * {@inheritDoc} * @return ipd and bpd of area */
diff --git a/src/java/org/apache/fop/area/AreaTreeHandler.java b/src/java/org/apache/fop/area/AreaTreeHandler.java index f45245b..ad1071f 100644 --- a/src/java/org/apache/fop/area/AreaTreeHandler.java +++ b/src/java/org/apache/fop/area/AreaTreeHandler.java
@@ -72,6 +72,9 @@ /** The AreaTreeModel in use */ protected AreaTreeModel model; + // Flag for controlling complex script features (default: true). + private boolean useComplexScriptFeatures = true; + // Keeps track of all meaningful id references private IDTracker idTracker; @@ -107,6 +110,8 @@ this.idTracker = new IDTracker(); + this.useComplexScriptFeatures = userAgent.isComplexScriptFeaturesEnabled(); + if (log.isDebugEnabled()) { statistics = new Statistics(); } @@ -168,6 +173,15 @@ } /** + * Check whether complex script features are enabled. + * + * @return true if using complex script features + */ + public boolean isComplexScriptFeaturesEnabled() { + return useComplexScriptFeatures; + } + + /** * Prepare AreaTreeHandler for document processing This is called from * FOTreeBuilder.startDocument() *
diff --git a/src/java/org/apache/fop/area/BodyRegion.java b/src/java/org/apache/fop/area/BodyRegion.java index 2dd8a9a..2fd0b01 100644 --- a/src/java/org/apache/fop/area/BodyRegion.java +++ b/src/java/org/apache/fop/area/BodyRegion.java
@@ -22,6 +22,7 @@ import java.util.List; import org.apache.fop.fo.pagination.RegionBody; +import org.apache.fop.traits.WritingModeTraitsGetter; /** * This class is a container for the areas that may be generated by @@ -140,6 +141,17 @@ } /** + * Sets the writing mode traits for the main reference area of + * this body region area. + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + if ( getMainReference() != null ) { + getMainReference().setWritingModeTraits ( wmtg ); + } + } + + /** * Clone this object. * * @return a shallow copy of this object
diff --git a/src/java/org/apache/fop/area/MainReference.java b/src/java/org/apache/fop/area/MainReference.java index a611201..44f4cc8 100644 --- a/src/java/org/apache/fop/area/MainReference.java +++ b/src/java/org/apache/fop/area/MainReference.java
@@ -19,6 +19,8 @@ package org.apache.fop.area; +import org.apache.fop.traits.WritingModeTraitsGetter; + import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -124,5 +126,16 @@ return parent.getColumnGap(); } + /** + * Sets the writing mode traits for the spans of this main + * reference area. + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + for ( Span s : (List<Span>) getSpans() ) { + s.setWritingModeTraits ( wmtg ); + } + } + }
diff --git a/src/java/org/apache/fop/area/Page.java b/src/java/org/apache/fop/area/Page.java index a1d9e38..3a08809 100644 --- a/src/java/org/apache/fop/area/Page.java +++ b/src/java/org/apache/fop/area/Page.java
@@ -33,6 +33,7 @@ import org.apache.fop.fo.pagination.SimplePageMaster; import org.apache.fop.fo.properties.CommonMarginBlock; import org.apache.fop.layoutmgr.TraitSetter; +import org.apache.fop.traits.WritingModeTraitsGetter; import static org.apache.fop.fo.Constants.FO_REGION_AFTER; import static org.apache.fop.fo.Constants.FO_REGION_BEFORE; @@ -304,6 +305,29 @@ return unresolved; } + /** + * Sets the writing mode traits for the region viewports of + * this page. + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + if (regionBefore != null) { + regionBefore.setWritingModeTraits(wmtg); + } + if (regionStart != null) { + regionStart.setWritingModeTraits(wmtg); + } + if (regionBody != null) { + regionBody.setWritingModeTraits(wmtg); + } + if (regionEnd != null) { + regionEnd.setWritingModeTraits(wmtg); + } + if (regionAfter != null) { + regionAfter.setWritingModeTraits(wmtg); + } + } + }
diff --git a/src/java/org/apache/fop/area/PageViewport.java b/src/java/org/apache/fop/area/PageViewport.java index ff4b2fd..f335fa1 100644 --- a/src/java/org/apache/fop/area/PageViewport.java +++ b/src/java/org/apache/fop/area/PageViewport.java
@@ -34,6 +34,7 @@ import org.apache.fop.fo.flow.Marker; import org.apache.fop.fo.pagination.SimplePageMaster; +import org.apache.fop.traits.WritingModeTraitsGetter; import static org.apache.fop.fo.Constants.FO_REGION_BODY; import static org.apache.fop.fo.Constants.EN_FSWP; @@ -654,4 +655,15 @@ public RegionReference getRegionReference(int id) { return getPage().getRegionViewport(id).getRegionReference(); } + + /** + * Sets the writing mode traits for the page associated with this viewport. + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + if ( page != null ) { + page.setWritingModeTraits(wmtg); + } + } + }
diff --git a/src/java/org/apache/fop/area/RegionViewport.java b/src/java/org/apache/fop/area/RegionViewport.java index 6975bd3..0104b53 100644 --- a/src/java/org/apache/fop/area/RegionViewport.java +++ b/src/java/org/apache/fop/area/RegionViewport.java
@@ -19,6 +19,8 @@ package org.apache.fop.area; +import org.apache.fop.traits.WritingModeTraitsGetter; + import java.awt.Rectangle; import java.awt.geom.Rectangle2D; import java.io.IOException; @@ -136,5 +138,17 @@ } return rv; } + + /** + * Sets the writing mode traits for the region reference of + * this region viewport + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + if (regionReference != null) { + regionReference.setWritingModeTraits(wmtg); + } + } + }
diff --git a/src/java/org/apache/fop/area/Span.java b/src/java/org/apache/fop/area/Span.java index c2fd467..526bd6e 100644 --- a/src/java/org/apache/fop/area/Span.java +++ b/src/java/org/apache/fop/area/Span.java
@@ -19,6 +19,9 @@ package org.apache.fop.area; +import org.apache.fop.fo.Constants; +import org.apache.fop.traits.WritingModeTraitsGetter; + import java.util.List; /** @@ -183,6 +186,22 @@ return (areaCount == 0); } + /** + * Sets the writing mode traits for the main reference area of + * this span area. + * @param wmtg a WM traits getter + */ + public void setWritingModeTraits(WritingModeTraitsGetter wmtg) { + switch ( wmtg.getColumnProgressionDirection().getEnumValue() ) { + case Constants.EN_RL: + setBidiLevel(1); + break; + default: + resetBidiLevel(); + break; + } + } + /** {@inheritDoc} */ @Override public String toString() {
diff --git a/src/java/org/apache/fop/area/Trait.java b/src/java/org/apache/fop/area/Trait.java index 45cd6e3..ff2ea31 100644 --- a/src/java/org/apache/fop/area/Trait.java +++ b/src/java/org/apache/fop/area/Trait.java
@@ -164,11 +164,13 @@ public static final Integer INLINE_PROGRESSION_DIRECTION = 39; /** block progression direction trait */ public static final Integer BLOCK_PROGRESSION_DIRECTION = 40; + /** column progression direction trait */ + public static final Integer COLUMN_PROGRESSION_DIRECTION = 41; /** shift direction trait */ - public static final Integer SHIFT_DIRECTION = 41; + public static final Integer SHIFT_DIRECTION = 42; /** Maximum value used by trait keys */ - public static final int MAX_TRAIT_KEY = 41; + public static final int MAX_TRAIT_KEY = 42; private static final TraitInfo[] TRAIT_INFO = new TraitInfo[MAX_TRAIT_KEY + 1];
diff --git a/src/java/org/apache/fop/cli/CommandLineOptions.java b/src/java/org/apache/fop/cli/CommandLineOptions.java index 0d4c379..4d2e7ad 100644 --- a/src/java/org/apache/fop/cli/CommandLineOptions.java +++ b/src/java/org/apache/fop/cli/CommandLineOptions.java
@@ -118,6 +118,8 @@ private int targetResolution = 0; /* control memory-conservation policy */ private boolean conserveMemoryPolicy = false; + /* true if a complex script features are enabled */ + private boolean useComplexScriptFeatures = true; private FopFactory factory = FopFactory.newInstance(); private FOUserAgent foUserAgent; @@ -181,6 +183,9 @@ addXSLTParameter("fop-output-format", getOutputFormat()); addXSLTParameter("fop-version", Version.getVersion()); foUserAgent.setConserveMemoryPolicy(conserveMemoryPolicy); + if (!useComplexScriptFeatures) { + foUserAgent.setComplexScriptFeaturesEnabled(false); + } } else { return false; } @@ -381,6 +386,8 @@ getPDFEncryptionParams().setAllowEditContent(false); } else if (args[i].equals("-noannotations")) { getPDFEncryptionParams().setAllowEditAnnotations(false); + } else if (args[i].equals("-nocs")) { + useComplexScriptFeatures = false; } else if (args[i].equals("-nofillinforms")) { getPDFEncryptionParams().setAllowFillInForms(false); } else if (args[i].equals("-noaccesscontent")) { @@ -1178,6 +1185,7 @@ + " -q quiet mode \n" + " -c cfg.xml use additional configuration file cfg.xml\n" + " -l lang the language to use for user information \n" + + " -nocs disable complex script features\n" + " -r relaxed/less strict validation (where available)\n" + " -dpi xxx target resolution in dots per inch (dpi) where xxx is a number\n" + " -s for area tree XML, down to block areas only\n"
diff --git a/src/java/org/apache/fop/fo/Constants.java b/src/java/org/apache/fop/fo/Constants.java index 07d67d9..a01da9d 100644 --- a/src/java/org/apache/fop/fo/Constants.java +++ b/src/java/org/apache/fop/fo/Constants.java
@@ -781,8 +781,15 @@ /** Property constant - FOP proprietary prototype (in XSL-FO 2.0 Requirements) */ int PR_X_XML_BASE = 276; + /** + * Property constant - FOP proprietary extension (see NumberConverter) used + * to perform additional control over number conversion when generating page + * numbers. + */ + int PR_X_NUMBER_CONVERSION_FEATURES = 277; + /** Number of property constants defined */ - int PROPERTY_COUNT = 276; + int PROPERTY_COUNT = 277; // compound property constants
diff --git a/src/java/org/apache/fop/fo/FOPropertyMapping.java b/src/java/org/apache/fop/fo/FOPropertyMapping.java index 9e3af6b..dcb8e9d 100644 --- a/src/java/org/apache/fop/fo/FOPropertyMapping.java +++ b/src/java/org/apache/fop/fo/FOPropertyMapping.java
@@ -2222,6 +2222,12 @@ m.addEnum("auto", getEnumProperty(EN_AUTO, "AUTO")); m.setDefault("auto"); addPropertyMaker("letter-value", m); + + // fox:alt-text, used for accessibility + m = new StringProperty.Maker(PR_X_NUMBER_CONVERSION_FEATURES); + m.setInherited(false); + m.setDefault(""); + addPropertyMaker("fox:number-conversion-features", m); } private void createPaginationAndLayoutProperties() {
diff --git a/src/java/org/apache/fop/fo/flow/BasicLink.java b/src/java/org/apache/fop/fo/flow/BasicLink.java index ee31711..c3a735d 100644 --- a/src/java/org/apache/fop/fo/flow/BasicLink.java +++ b/src/java/org/apache/fop/fo/flow/BasicLink.java
@@ -22,9 +22,11 @@ import org.xml.sax.Locator; import org.apache.fop.apps.FOPException; +import org.apache.fop.datatypes.Length; import org.apache.fop.fo.FONode; import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.ValidationException; +import org.apache.fop.fo.properties.StructurePointerPropertySet; /** * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_basic-link"> @@ -34,9 +36,14 @@ * and whether that link is external (uses a URI) or internal (an id * reference). */ -public class BasicLink extends Inline { +public class BasicLink extends InlineLevel implements StructurePointerPropertySet { // The value of properties relevant for fo:basic-link. + private Length alignmentAdjust; + private int alignmentBaseline; + private Length baselineShift; + private int dominantBaseline; + private String ptr; // private ToBeImplementedProperty destinationPlacementOffset; private String externalDestination; // private ToBeImplementedProperty indicateDestination; @@ -65,6 +72,11 @@ /** {@inheritDoc} */ public void bind(PropertyList pList) throws FOPException { super.bind(pList); + alignmentAdjust = pList.get(PR_ALIGNMENT_ADJUST).getLength(); + alignmentBaseline = pList.get(PR_ALIGNMENT_BASELINE).getEnum(); + baselineShift = pList.get(PR_BASELINE_SHIFT).getLength(); + dominantBaseline = pList.get(PR_DOMINANT_BASELINE).getEnum(); + ptr = pList.get(PR_X_PTR).getString(); // used for accessibility // destinationPlacementOffset = pList.get(PR_DESTINATION_PLACEMENT_OFFSET); externalDestination = pList.get(PR_EXTERNAL_DESTINATION).getString(); // indicateDestination = pList.get(PR_INDICATE_DESTINATION); @@ -111,6 +123,31 @@ } } + /** @return the "alignment-adjust" property */ + public Length getAlignmentAdjust() { + return alignmentAdjust; + } + + /** @return the "alignment-baseline" property */ + public int getAlignmentBaseline() { + return alignmentBaseline; + } + + /** @return the "baseline-shift" property */ + public Length getBaselineShift() { + return baselineShift; + } + + /** @return the "dominant-baseline" property */ + public int getDominantBaseline() { + return dominantBaseline; + } + + /** {@inheritDoc} */ + public String getPtr() { + return ptr; + } + /** * Get the value of the <code>internal-destination</code> property. *
diff --git a/src/java/org/apache/fop/fo/pagination/AbstractPageSequence.java b/src/java/org/apache/fop/fo/pagination/AbstractPageSequence.java index 51b24b3..8640ab1 100644 --- a/src/java/org/apache/fop/fo/pagination/AbstractPageSequence.java +++ b/src/java/org/apache/fop/fo/pagination/AbstractPageSequence.java
@@ -43,6 +43,9 @@ private char groupingSeparator; private int groupingSize; private Numeric referenceOrientation; //XSL 1.1 + private String language; + private String country; + private String numberConversionFeatures; // End of property values private PageNumberGenerator pageNumberGenerator; @@ -70,12 +73,16 @@ groupingSeparator = pList.get(PR_GROUPING_SEPARATOR).getCharacter(); groupingSize = pList.get(PR_GROUPING_SIZE).getNumber().intValue(); referenceOrientation = pList.get(PR_REFERENCE_ORIENTATION).getNumeric(); + language = pList.get(PR_LANGUAGE).getString(); + country = pList.get(PR_COUNTRY).getString(); + numberConversionFeatures = pList.get(PR_X_NUMBER_CONVERSION_FEATURES).getString(); } /** {@inheritDoc} */ protected void startOfNode() throws FOPException { this.pageNumberGenerator = new PageNumberGenerator( - format, groupingSeparator, groupingSize, letterValue); + format, groupingSeparator, groupingSize, letterValue, + numberConversionFeatures, language, country); }
diff --git a/src/java/org/apache/fop/fo/pagination/PageNumberGenerator.java b/src/java/org/apache/fop/fo/pagination/PageNumberGenerator.java index 485fb67..b0a1c1b 100644 --- a/src/java/org/apache/fop/fo/pagination/PageNumberGenerator.java +++ b/src/java/org/apache/fop/fo/pagination/PageNumberGenerator.java
@@ -19,84 +19,37 @@ package org.apache.fop.fo.pagination; +import org.apache.fop.util.NumberConverter; + +// CSOFF: LineLengthCheck + /** * This class uses the 'format', 'groupingSeparator', 'groupingSize', * and 'letterValue' properties on fo:page-sequence to return a String * corresponding to the supplied integer page number. + * + * In addition, (now) uses 'language' parameter and new 'fox:page-number-features' + * parameter to express applicable language and number conversion features. + * + * @author Glenn Adams (rewrite to use new NumberConverter utility) + * @see NumberConverter */ public class PageNumberGenerator { - private String format; - private char groupingSeparator; - private int groupingSize; - private int letterValue; - - // constants - private static final int DECIMAL = 1; // '0*1' - private static final int LOWERALPHA = 2; // 'a' - private static final int UPPERALPHA = 3; // 'A' - private static final int LOWERROMAN = 4; // 'i' - private static final int UPPERROMAN = 5; // 'I' - - // flags - private int formatType = DECIMAL; - private int minPadding = 0; // for decimal formats - - // preloaded strings of zeros - private String[] zeros = { - "", "0", "00", "000", "0000", "00000" - }; + private NumberConverter converter; /** - * Main constructor. For further information on the parameters see the XSLT - * specs (Number to String Conversion Attributes). - * @param format format for the page number - * @param groupingSeparator grouping separator - * @param groupingSize grouping size + * Main constructor. For further information on the parameters see {@link NumberConverter}. + * @param format format for the page number (may be null or empty, which is treated as null) + * @param groupingSeparator grouping separator (if zero, then no grouping separator applies) + * @param groupingSize grouping size (if zero or negative, then no grouping size applies) * @param letterValue letter value + * @param features features (feature sub-parameters) + * @param language (may be null or empty, which is treated as null) + * @param country (may be null or empty, which is treated as null) */ - public PageNumberGenerator(String format, char groupingSeparator, - int groupingSize, int letterValue) { - this.format = format; - this.groupingSeparator = groupingSeparator; - this.groupingSize = groupingSize; - this.letterValue = letterValue; - - // the only accepted format strings are currently '0*1' 'a', 'A', 'i' - // and 'I' - int fmtLen = format.length(); - if (fmtLen == 1) { - if (format.equals("1")) { - formatType = DECIMAL; - minPadding = 0; - } else if (format.equals("a")) { - formatType = LOWERALPHA; - } else if (format.equals("A")) { - formatType = UPPERALPHA; - } else if (format.equals("i")) { - formatType = LOWERROMAN; - } else if (format.equals("I")) { - formatType = UPPERROMAN; - } else { - // token not handled - //getLogger().debug("'format' token not recognized; using '1'"); - formatType = DECIMAL; - minPadding = 0; - } - } else { - // only accepted token is '0+1'at this stage. Because of the - // wonderful regular expression support in Java, we will resort to a - // loop - for (int i = 0; i < fmtLen - 1; i++) { - if (format.charAt(i) != '0') { - //getLogger().debug("'format' token not recognized; using '1'"); - formatType = DECIMAL; - minPadding = 0; - } else { - minPadding = fmtLen - 1; - } - } - } + public PageNumberGenerator ( String format, int groupingSeparator, int groupingSize, int letterValue, String features, String language, String country ) { + this.converter = new NumberConverter ( format, groupingSeparator, groupingSize, letterValue, features, language, country ); } /** @@ -104,70 +57,9 @@ * @param number page number to format * @return the formatted page number as a String */ - public String makeFormattedPageNumber(int number) { - String pn = null; - if (formatType == DECIMAL) { - pn = Integer.toString(number); - if (minPadding >= pn.length()) { - int nz = minPadding - pn.length() + 1; - pn = zeros[nz] + pn; - } - } else if ((formatType == LOWERROMAN) || (formatType == UPPERROMAN)) { - pn = makeRoman(number); - if (formatType == UPPERROMAN) { - pn = pn.toUpperCase(); - } - } else { - // alphabetic - pn = makeAlpha(number); - if (formatType == UPPERALPHA) { - pn = pn.toUpperCase(); - } - } - return pn; + public String makeFormattedPageNumber ( int number ) { + return converter.convert ( number ); } - private String makeRoman(int num) { - int[] arabic = { - 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 - }; - String[] roman = { - "m", "cm", "d", "cd", "c", "xc", "l", "xl", "x", "ix", "v", "iv", - "i" - }; - - int i = 0; - StringBuffer romanNumber = new StringBuffer(); - - while (num > 0) { - while (num >= arabic[i]) { - num = num - arabic[i]; - romanNumber.append(roman[i]); - } - i = i + 1; - } - return romanNumber.toString(); - } - - private String makeAlpha(int num) { - String letters = "abcdefghijklmnopqrstuvwxyz"; - StringBuffer alphaNumber = new StringBuffer(); - - int base = 26; - int rem = 0; - - num--; - if (num < base) { - alphaNumber.append(letters.charAt(num)); - } else { - while (num >= base) { - rem = num % base; - alphaNumber.append(letters.charAt(rem)); - num = num / base; - } - alphaNumber.append(letters.charAt(num - 1)); - } - return alphaNumber.reverse().toString(); - } }
diff --git a/src/java/org/apache/fop/fonts/CustomFontCollection.java b/src/java/org/apache/fop/fonts/CustomFontCollection.java index 9f98814..6e798a8 100644 --- a/src/java/org/apache/fop/fonts/CustomFontCollection.java +++ b/src/java/org/apache/fop/fonts/CustomFontCollection.java
@@ -33,13 +33,14 @@ * Main constructor. * @param fontResolver a font resolver * @param customFonts the list of custom fonts + * @param useComplexScriptFeatures true if complex script features enabled */ public CustomFontCollection(FontResolver fontResolver, - List<EmbedFontInfo> customFonts) { + List<EmbedFontInfo> customFonts, boolean useComplexScriptFeatures) { this.fontResolver = fontResolver; if (this.fontResolver == null) { //Ensure that we have minimal font resolution capabilities - this.fontResolver = FontManager.createMinimalFontResolver(); + this.fontResolver = FontManager.createMinimalFontResolver(useComplexScriptFeatures); } this.embedFontInfoList = customFonts; }
diff --git a/src/java/org/apache/fop/fonts/FontManager.java b/src/java/org/apache/fop/fonts/FontManager.java index 51516e2..9285c94 100644 --- a/src/java/org/apache/fop/fonts/FontManager.java +++ b/src/java/org/apache/fop/fonts/FontManager.java
@@ -224,16 +224,32 @@ getFontSubstitutions().adjustFontInfo(fontInfo); } - /** @return a new FontResolver to be used by the font subsystem */ - public static FontResolver createMinimalFontResolver() { - return new FontResolver() { + /** + * Minimum implemenation of FontResolver. + */ + public static class MinimalFontResolver implements FontResolver { + private boolean useComplexScriptFeatures; + MinimalFontResolver(boolean useComplexScriptFeatures) { + this.useComplexScriptFeatures = useComplexScriptFeatures; + } + /** {@inheritDoc} */ + public Source resolve(String href) { + //Minimal functionality here + return new StreamSource(href); + } + /** {@inheritDoc} */ + public boolean isComplexScriptFeaturesEnabled() { + return useComplexScriptFeatures; + } + } - /** {@inheritDoc} */ - public Source resolve(String href) { - //Minimal functionality here - return new StreamSource(href); - } - }; + /** + * Create minimal font resolver. + * @param useComplexScriptFeatures true if complex script features enabled + * @return a new FontResolver to be used by the font subsystem + */ + public static FontResolver createMinimalFontResolver(boolean useComplexScriptFeatures) { + return new MinimalFontResolver ( useComplexScriptFeatures ); } /**
diff --git a/src/java/org/apache/fop/fonts/FontResolver.java b/src/java/org/apache/fop/fonts/FontResolver.java index 1da2339..bd15548 100644 --- a/src/java/org/apache/fop/fonts/FontResolver.java +++ b/src/java/org/apache/fop/fonts/FontResolver.java
@@ -36,4 +36,10 @@ */ Source resolve(String href); + /** + * Check whether complex script features are enabled. + * @return true if FOP is to use complex script features + */ + boolean isComplexScriptFeaturesEnabled(); + }
diff --git a/src/java/org/apache/fop/fonts/FontSetup.java b/src/java/org/apache/fop/fonts/FontSetup.java index 935f695..ba31b2d 100644 --- a/src/java/org/apache/fop/fonts/FontSetup.java +++ b/src/java/org/apache/fop/fonts/FontSetup.java
@@ -57,9 +57,10 @@ /** * Sets up a font info * @param fontInfo font info + * @param base14Kerning true if base14 kerning applies */ - public static void setup(FontInfo fontInfo) { - setup(fontInfo, null, null); + public static void setup(FontInfo fontInfo, boolean base14Kerning) { + setup(fontInfo, null, null, base14Kerning); } /** @@ -71,10 +72,10 @@ * @param fontInfo the font info object to set up * @param embedFontInfoList a list of EmbedFontInfo objects * @param resolver the font resolver + * @param base14Kerning true if base14 kerning applies */ public static void setup(FontInfo fontInfo, List<EmbedFontInfo> embedFontInfoList, - FontResolver resolver) { - final boolean base14Kerning = false; + FontResolver resolver, boolean base14Kerning) { fontInfo.addMetrics("F1", new Helvetica(base14Kerning)); fontInfo.addMetrics("F2", new HelveticaOblique(base14Kerning)); fontInfo.addMetrics("F3", new HelveticaBold(base14Kerning)); @@ -180,7 +181,7 @@ final int startNum = 15; /* Add configured fonts */ - addConfiguredFonts(fontInfo, embedFontInfoList, startNum, resolver); + addConfiguredFonts(fontInfo, embedFontInfoList, startNum, resolver, base14Kerning); } /** @@ -191,14 +192,17 @@ * @param resolver the font resolver */ private static void addConfiguredFonts(FontInfo fontInfo, - List<EmbedFontInfo> embedFontInfoList, int num, FontResolver resolver) { + List<EmbedFontInfo> embedFontInfoList, int num, FontResolver resolver, + boolean base14Kerning) { if (embedFontInfoList == null) { return; //No fonts to process } if (resolver == null) { //Ensure that we have minimal font resolution capabilities - resolver = createMinimalFontResolver(); + //None of the built-in base14 fonts have advanced typographic data + boolean useAdvanced = false; + resolver = createMinimalFontResolver(useAdvanced); } String internalName = null; @@ -218,15 +222,31 @@ } } - /** @return a new FontResolver to be used by the font subsystem */ - public static FontResolver createMinimalFontResolver() { - return new FontResolver() { + /** + * Minimum implemenation of FontResolver. + */ + public static class MinimalFontResolver implements FontResolver { + private boolean useComplexScriptFeatures; + MinimalFontResolver(boolean useComplexScriptFeatures) { + this.useComplexScriptFeatures = useComplexScriptFeatures; + } + /** {@inheritDoc} */ + public Source resolve(String href) { + //Minimal functionality here + return new StreamSource(href); + } + /** {@inheritDoc} */ + public boolean isComplexScriptFeaturesEnabled() { + return useComplexScriptFeatures; + } + } - /** {@inheritDoc} */ - public Source resolve(String href) { - //Minimal functionality here - return new StreamSource(href); - } - }; + /** + * Create minimal font resolver. + * @param useComplexScriptFeatures true if complex script features enabled + * @return a new FontResolver to be used by the font subsystem + */ + public static FontResolver createMinimalFontResolver(boolean useComplexScriptFeatures) { + return new MinimalFontResolver ( useComplexScriptFeatures ); } }
diff --git a/src/java/org/apache/fop/fonts/GlyphDefinitionTable.java b/src/java/org/apache/fop/fonts/GlyphDefinitionTable.java index 0a4e1ca..7ebd268 100644 --- a/src/java/org/apache/fop/fonts/GlyphDefinitionTable.java +++ b/src/java/org/apache/fop/fonts/GlyphDefinitionTable.java
@@ -140,6 +140,19 @@ } /** + * Determine glyph class. + * @param gid a glyph identifier (index) + * @return a pre-defined glyph class (GLYPH_CLASS_BASE|GLYPH_CLASS_LIGATURE|GLYPH_CLASS_MARK|GLYPH_CLASS_COMPONENT). + */ + public int getGlyphClass ( int gid ) { + if ( gct != null ) { + return gct.getGlyphClass ( gid ); + } else { + return -1; + } + } + + /** * Map a lookup type name to its constant (integer) value. * @param name lookup type name * @return lookup type @@ -235,6 +248,12 @@ * @return true if glyph belongs to specified glyph class */ public abstract boolean isGlyphClass ( int gid, int gc ); + /** + * Determine glyph class. + * @param gid a glyph identifier (index) + * @return a pre-defined glyph class (GLYPH_CLASS_BASE|GLYPH_CLASS_LIGATURE|GLYPH_CLASS_MARK|GLYPH_CLASS_COMPONENT). + */ + public abstract int getGlyphClass ( int gid ); static GlyphDefinitionSubtable create ( String id, int sequence, int flags, int format, GlyphMappingTable mapping, List entries ) { if ( format == 1 ) { return new GlyphClassSubtableFormat1 ( id, sequence, flags, format, mapping, entries ); @@ -265,6 +284,15 @@ return false; } } + /** {@inheritDoc} */ + public int getGlyphClass ( int gid ) { + GlyphClassMapping cm = getClasses(); + if ( cm != null ) { + return cm.getClassIndex ( gid, 0 ); + } else { + return -1; + } + } } private abstract static class AttachmentPointSubtable extends GlyphDefinitionSubtable {
diff --git a/src/java/org/apache/fop/fonts/GlyphPositioningSubtable.java b/src/java/org/apache/fop/fonts/GlyphPositioningSubtable.java index b1cdfa9..3fb580e 100644 --- a/src/java/org/apache/fop/fonts/GlyphPositioningSubtable.java +++ b/src/java/org/apache/fop/fonts/GlyphPositioningSubtable.java
@@ -81,7 +81,7 @@ * @param sequenceIndex if non negative, then apply subtables only at specified sequence index * @return true if a non-zero adjustment occurred */ - static final boolean position ( GlyphPositioningState ps, GlyphPositioningSubtable[] sta, int sequenceIndex ) { + public static final boolean position ( GlyphPositioningState ps, GlyphPositioningSubtable[] sta, int sequenceIndex ) { int sequenceStart = ps.getPosition(); boolean appliedOneShot = false; while ( ps.hasNext() ) { @@ -106,7 +106,20 @@ return ps.getAdjusted(); } - static final boolean position ( GlyphSequence gs, String script, String language, String feature, int fontSize, GlyphPositioningSubtable[] sta, int[] widths, int[][] adjustments, ScriptContextTester sct ) { + /** + * Apply positioning. + * @param gs input glyph sequence + * @param script tag + * @param language tag + * @param feature tag + * @param fontSize the font size + * @param sta subtable array + * @param widths array + * @param adjustments array (receives output adjustments) + * @param sct script context tester + * @return true if a non-zero adjustment occurred + */ + public static final boolean position ( GlyphSequence gs, String script, String language, String feature, int fontSize, GlyphPositioningSubtable[] sta, int[] widths, int[][] adjustments, ScriptContextTester sct ) { return position ( new GlyphPositioningState ( gs, script, language, feature, fontSize, widths, adjustments, sct ), sta, -1 ); }
diff --git a/src/java/org/apache/fop/fonts/GlyphSubstitutionSubtable.java b/src/java/org/apache/fop/fonts/GlyphSubstitutionSubtable.java index 7d99232..1c31c20 100644 --- a/src/java/org/apache/fop/fonts/GlyphSubstitutionSubtable.java +++ b/src/java/org/apache/fop/fonts/GlyphSubstitutionSubtable.java
@@ -104,7 +104,17 @@ return ss.getOutput(); } - static final GlyphSequence substitute ( GlyphSequence gs, String script, String language, String feature, GlyphSubstitutionSubtable[] sta, ScriptContextTester sct ) { + /** + * Apply substitutions. + * @param gs input glyph sequence + * @param script tag + * @param language tag + * @param feature tag + * @param sta subtable array + * @param sct script context tester + * @return output glyph sequence + */ + public static final GlyphSequence substitute ( GlyphSequence gs, String script, String language, String feature, GlyphSubstitutionSubtable[] sta, ScriptContextTester sct ) { return substitute ( new GlyphSubstitutionState ( gs, script, language, feature, sct ), sta, -1 ); }
diff --git a/src/java/org/apache/fop/fonts/GlyphTable.java b/src/java/org/apache/fop/fonts/GlyphTable.java index 1bc7d37..6e0c23c 100644 --- a/src/java/org/apache/fop/fonts/GlyphTable.java +++ b/src/java/org/apache/fop/fonts/GlyphTable.java
@@ -122,6 +122,16 @@ } /** + * Obtain lookup table by lookup id. This method is used by test code, and provides + * access to embedded lookups not normally accessed by {script, language, feature} lookup spec. + * @param lid lookup id + * @return table associated with lookup id or null if none + */ + public LookupTable getLookupTable ( String lid ) { + return (LookupTable) lookupTables.get ( lid ); + } + + /** * Add a subtable. * @param subtable a (non-null) glyph subtable */
diff --git a/src/java/org/apache/fop/fonts/LazyFont.java b/src/java/org/apache/fop/fonts/LazyFont.java index ce7b1ee..73522b0 100644 --- a/src/java/org/apache/fop/fonts/LazyFont.java +++ b/src/java/org/apache/fop/fonts/LazyFont.java
@@ -63,7 +63,11 @@ this.metricsFileName = fontInfo.getMetricsFile(); this.fontEmbedPath = fontInfo.getEmbedFile(); this.useKerning = fontInfo.getKerning(); - this.useAdvanced = fontInfo.getAdvanced(); + if ( resolver != null ) { + this.useAdvanced = resolver.isComplexScriptFeaturesEnabled(); + } else { + this.useAdvanced = fontInfo.getAdvanced(); + } this.encodingMode = fontInfo.getEncodingMode(); this.subFontName = fontInfo.getSubFontName(); this.embedded = fontInfo.isEmbedded();
diff --git a/src/java/org/apache/fop/fonts/apps/TTFReader.java b/src/java/org/apache/fop/fonts/apps/TTFReader.java index efd7599..1804a8d 100644 --- a/src/java/org/apache/fop/fonts/apps/TTFReader.java +++ b/src/java/org/apache/fop/fonts/apps/TTFReader.java
@@ -107,6 +107,8 @@ * you can also include the fontfile in the fop.jar file when building fop. * You can use both -ef and -er. The file specified in -ef will be searched first, * then the -er file. + * -nocs + * if complex script features are disabled */ public static void main(String[] args) { String embFile = null; @@ -160,13 +162,19 @@ className = (String)options.get("-cn"); } + boolean useKerning = true; + boolean useAdvanced = true; + if (options.get("-nocs") != null) { + useAdvanced = false; + } + if (arguments.length != 2 || options.get("-h") != null || options.get("-help") != null || options.get("--help") != null) { displayUsage(); } else { try { log.info("Parsing font..."); - TTFFile ttf = app.loadTTF(arguments[0], ttcName); + TTFFile ttf = app.loadTTF(arguments[0], ttcName, useKerning, useAdvanced); if (ttf != null) { org.w3c.dom.Document doc = app.constructFontXML(ttf, fontName, className, embResource, embFile, isCid, @@ -203,11 +211,13 @@ * * @param fileName The filename of the TTF file. * @param fontName The name of the font + * @param useKerning true if should load kerning data + * @param useAdvanced true if should load advanced typographic table data * @return The TTF as an object, null if the font is incompatible. * @throws IOException In case of an I/O problem */ - public TTFFile loadTTF(String fileName, String fontName) throws IOException { - TTFFile ttfFile = new TTFFile(); + public TTFFile loadTTF(String fileName, String fontName, boolean useKerning, boolean useAdvanced) throws IOException { + TTFFile ttfFile = new TTFFile(useKerning, useAdvanced); log.info("Reading " + fileName + "..."); FontFileReader reader = new FontFileReader(fileName);
diff --git a/src/java/org/apache/fop/fonts/autodetect/FontInfoFinder.java b/src/java/org/apache/fop/fonts/autodetect/FontInfoFinder.java index be098c7..bf6f493 100644 --- a/src/java/org/apache/fop/fonts/autodetect/FontInfoFinder.java +++ b/src/java/org/apache/fop/fonts/autodetect/FontInfoFinder.java
@@ -168,6 +168,9 @@ public EmbedFontInfo[] find(URL fontURL, FontResolver resolver, FontCache fontCache) { String embedURL = null; embedURL = fontURL.toExternalForm(); + boolean useKerning = true; + boolean useAdvanced = ( resolver != null ) + ? resolver.isComplexScriptFeaturesEnabled() : true; long fileLastModified = -1; if (fontCache != null) { @@ -197,7 +200,7 @@ InputStream in = null; try { in = FontLoader.openFontUri(resolver, fontFileURL); - TTFFile ttf = new TTFFile(); + TTFFile ttf = new TTFFile(false, false); FontFileReader reader = new FontFileReader(in); ttcNames = ttf.getTTCnames(reader); } catch (Exception e) { @@ -218,7 +221,8 @@ } try { TTFFontLoader ttfLoader = new TTFFontLoader( - fontFileURL, fontName, true, EncodingMode.AUTO, true, true, resolver); + fontFileURL, fontName, true, EncodingMode.AUTO, + useKerning, useAdvanced, resolver); customFont = ttfLoader.getFont(); if (this.eventListener != null) { customFont.setEventListener(this.eventListener);
diff --git a/src/java/org/apache/fop/fonts/truetype/TTFFile.java b/src/java/org/apache/fop/fonts/truetype/TTFFile.java index a4ec79b..b483b03 100644 --- a/src/java/org/apache/fop/fonts/truetype/TTFFile.java +++ b/src/java/org/apache/fop/fonts/truetype/TTFFile.java
@@ -66,6 +66,10 @@ private final String encoding = "WinAnsiEncoding"; // Default encoding private final short firstChar = 0; + + private boolean useKerning = false; + private boolean useAdvanced = false; + private boolean isEmbeddable = true; private boolean hasSerifs = true; /** @@ -138,9 +142,9 @@ private boolean isCFF; /* advanced typographic support */ - private Map/*<String,Object[3]>*/ seScripts; - private Map/*<String,Object[2]>*/ seLanguages; - private Map/*<String,List<String>>*/ seFeatures; + private Map/*<String,Object[3]>*/ seScripts; // script-tag => Object[3] : { default-language-tag, List(language-tag), seLanguages } + private Map/*<String,Object[2]>*/ seLanguages; // language-tag => Object[2] : { "f<required-feature-index>", List("f<feature-index>") + private Map/*<String,List<String>>*/ seFeatures; // "f<feature-index>" => Object[2] : { feature-tag, List("lu<lookup-index>") } private GlyphMappingTable seMapping; private List seEntries; private List seSubtables; @@ -154,6 +158,16 @@ protected Log log = LogFactory.getLog(TTFFile.class); /** + * Constructor + * @param useKerning true if kerning data should be loaded + * @param useAdvanced true if advanced typographic tables should be loaded + */ + public TTFFile ( boolean useKerning, boolean useAdvanced ) { + this.useKerning = useKerning; + this.useAdvanced = useAdvanced; + } + + /** * Key-value helper class */ class UnicodeMapping implements Comparable { @@ -623,19 +637,23 @@ // Create cmaps for bfentries createCMaps(); - readKerning(in); + if ( useKerning ) { + readKerning(in); + } // Read advanced typographic tables. If any format exception, // reset (thus ignoring) all advanced typographic tables. - try { - readGDEF(in); - readGSUB(in); - readGPOS(in); - } catch ( AdvancedTypographicTableFormatException e ) { - resetATStateAll(); - log.warn ( "Encountered format constraint violation in advanced (typographic) table (AT) " - + "in font '" + getFullName() + "', ignoring AT data: " - + e.getMessage() ); + if ( useAdvanced ) { + try { + readGDEF(in); + readGSUB(in); + readGPOS(in); + } catch ( AdvancedTypographicTableFormatException e ) { + resetATStateAll(); + log.warn ( "Encountered format constraint violation in advanced (typographic) table (AT) " + + "in font '" + getFullName() + "', ignoring AT data: " + + e.getMessage() ); + } } guessVerticalMetricsFromGlyphBBox(); @@ -2910,14 +2928,14 @@ } // read input glyph count int nig = in.readTTFUShort(); - // read backtrack glyph coverage offsets + // read input glyph coverage offsets int[] igcoa = new int [ nig ]; for ( int i = 0; i < nig; i++ ) { igcoa [ i ] = in.readTTFUShort(); } // read lookahead glyph count int nlg = in.readTTFUShort(); - // read backtrack glyph coverage offsets + // read lookahead glyph coverage offsets int[] lgcoa = new int [ nlg ]; for ( int i = 0; i < nlg; i++ ) { lgcoa [ i ] = in.readTTFUShort(); @@ -5121,12 +5139,12 @@ private GlyphSubtable constructGDEFSubtable ( Object[] stp ) { GlyphSubtable st = null; assert ( stp != null ) && ( stp.length == 8 ); - Integer tt = (Integer) stp[0]; - Integer lt = (Integer) stp[1]; - Integer ln = (Integer) stp[2]; - Integer lf = (Integer) stp[3]; - Integer sn = (Integer) stp[4]; - Integer sf = (Integer) stp[5]; + Integer tt = (Integer) stp[0]; // table type + Integer lt = (Integer) stp[1]; // lookup type + Integer ln = (Integer) stp[2]; // lookup sequence number + Integer lf = (Integer) stp[3]; // lookup flags + Integer sn = (Integer) stp[4]; // subtable sequence number + Integer sf = (Integer) stp[5]; // subtable format GlyphMappingTable mapping = (GlyphMappingTable) stp[6]; List entries = (List) stp[7]; if ( tt.intValue() == GlyphTable.GLYPH_TABLE_TYPE_DEFINITION ) { @@ -5157,12 +5175,12 @@ private GlyphSubtable constructGSUBSubtable ( Object[] stp ) { GlyphSubtable st = null; assert ( stp != null ) && ( stp.length == 8 ); - Integer tt = (Integer) stp[0]; - Integer lt = (Integer) stp[1]; - Integer ln = (Integer) stp[2]; - Integer lf = (Integer) stp[3]; - Integer sn = (Integer) stp[4]; - Integer sf = (Integer) stp[5]; + Integer tt = (Integer) stp[0]; // table type + Integer lt = (Integer) stp[1]; // lookup type + Integer ln = (Integer) stp[2]; // lookup sequence number + Integer lf = (Integer) stp[3]; // lookup flags + Integer sn = (Integer) stp[4]; // subtable sequence number + Integer sf = (Integer) stp[5]; // subtable format GlyphCoverageTable coverage = (GlyphCoverageTable) stp[6]; List entries = (List) stp[7]; if ( tt.intValue() == GlyphTable.GLYPH_TABLE_TYPE_SUBSTITUTION ) { @@ -5193,12 +5211,12 @@ private GlyphSubtable constructGPOSSubtable ( Object[] stp ) { GlyphSubtable st = null; assert ( stp != null ) && ( stp.length == 8 ); - Integer tt = (Integer) stp[0]; - Integer lt = (Integer) stp[1]; - Integer ln = (Integer) stp[2]; - Integer lf = (Integer) stp[3]; - Integer sn = (Integer) stp[4]; - Integer sf = (Integer) stp[5]; + Integer tt = (Integer) stp[0]; // table type + Integer lt = (Integer) stp[1]; // lookup type + Integer ln = (Integer) stp[2]; // lookup sequence number + Integer lf = (Integer) stp[3]; // lookup flags + Integer sn = (Integer) stp[4]; // subtable sequence number + Integer sf = (Integer) stp[5]; // subtable format GlyphCoverageTable coverage = (GlyphCoverageTable) stp[6]; List entries = (List) stp[7]; if ( tt.intValue() == GlyphTable.GLYPH_TABLE_TYPE_POSITIONING ) { @@ -5462,7 +5480,9 @@ */ public static void main(String[] args) { try { - TTFFile ttfFile = new TTFFile(); + boolean useKerning = true; + boolean useAdvanced = true; + TTFFile ttfFile = new TTFFile(useKerning, useAdvanced); FontFileReader reader = new FontFileReader(args[0]);
diff --git a/src/java/org/apache/fop/fonts/truetype/TTFFontLoader.java b/src/java/org/apache/fop/fonts/truetype/TTFFontLoader.java index 75e6809..d871abd 100644 --- a/src/java/org/apache/fop/fonts/truetype/TTFFontLoader.java +++ b/src/java/org/apache/fop/fonts/truetype/TTFFontLoader.java
@@ -94,7 +94,7 @@ private void read(String ttcFontName) throws IOException { InputStream in = openFontUri(resolver, this.fontFileURI); try { - TTFFile ttf = new TTFFile(); + TTFFile ttf = new TTFFile(useKerning, useAdvanced); FontFileReader reader = new FontFileReader(in); boolean supported = ttf.readFont(reader, ttcFontName); if (!supported) {
diff --git a/src/java/org/apache/fop/fonts/truetype/TTFSubSetFile.java b/src/java/org/apache/fop/fonts/truetype/TTFSubSetFile.java index 665cf28..e081734 100644 --- a/src/java/org/apache/fop/fonts/truetype/TTFSubSetFile.java +++ b/src/java/org/apache/fop/fonts/truetype/TTFSubSetFile.java
@@ -57,6 +57,22 @@ private int locaOffset = 0; /** + * Default Constructor + */ + public TTFSubSetFile() { + this(false, false); + } + + /** + * Constructor + * @param useKerning true if kerning data should be loaded + * @param useAdvanced true if advanced typographic tables should be loaded + */ + public TTFSubSetFile ( boolean useKerning, boolean useAdvanced ) { + super(useKerning, useAdvanced); + } + + /** * Initalize the output array */ private void init(int size) {
diff --git a/src/java/org/apache/fop/layoutmgr/PageBreaker.java b/src/java/org/apache/fop/layoutmgr/PageBreaker.java index 3a41eb1..ea2d092 100644 --- a/src/java/org/apache/fop/layoutmgr/PageBreaker.java +++ b/src/java/org/apache/fop/layoutmgr/PageBreaker.java
@@ -367,7 +367,9 @@ // Handle special page-master for last page BodyRegion currentBody = pageProvider.getPage(false, currentPageNum) .getPageViewport().getBodyRegion(); - pageProvider.setLastPageIndex(currentPageNum); + + setLastPageIndex(currentPageNum); + BodyRegion lastBody = pageProvider.getPage(false, currentPageNum) .getPageViewport().getBodyRegion(); lastBody.getMainReference().setSpans(currentBody.getMainReference().getSpans()); @@ -410,7 +412,7 @@ //Add areas now... addAreas(alg, restartPoint, partCount - restartPoint, originalList, effectiveList); //...and add a blank last page - pageProvider.setLastPageIndex(currentPageNum + 1); + setLastPageIndex(currentPageNum + 1); pslm.setCurrentPage(pslm.makeNewPage(true, true)); return; } @@ -419,6 +421,11 @@ addAreas(algRestart, optimalPageCount, originalList, effectiveList); } + private void setLastPageIndex(int currentPageNum) { + int lastPageIndex = pslm.getForcedLastPageNum(currentPageNum); + pageProvider.setLastPageIndex(lastPageIndex); + } + /** {@inheritDoc} */ protected void startPart(BlockSequence list, int breakClass) { AbstractBreaker.log.debug("startPart() breakClass=" + getBreakClassName(breakClass));
diff --git a/src/java/org/apache/fop/layoutmgr/PageProvider.java b/src/java/org/apache/fop/layoutmgr/PageProvider.java index 8caafa7..febac66 100644 --- a/src/java/org/apache/fop/layoutmgr/PageProvider.java +++ b/src/java/org/apache/fop/layoutmgr/PageProvider.java
@@ -345,6 +345,7 @@ //Set unique key obtained from the AreaTreeHandler page.getPageViewport().setKey(areaTreeHandler.generatePageViewportKey()); page.getPageViewport().setForeignAttributes(spm.getForeignAttributes()); + page.getPageViewport().setWritingModeTraits(pageSeq); cachedPages.add(page); return page; }
diff --git a/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java b/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java index 6689ee1..54a2adb 100644 --- a/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java +++ b/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
@@ -25,6 +25,7 @@ import org.apache.fop.area.AreaTreeHandler; import org.apache.fop.area.AreaTreeModel; import org.apache.fop.area.LineArea; +import org.apache.fop.fo.Constants; import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fo.pagination.PageSequenceMaster; import org.apache.fop.fo.pagination.SideRegion; @@ -78,7 +79,9 @@ initialize(); // perform step 5.8 of refinement process (Unicode BIDI Processing) - BidiUtil.resolveInlineDirectionality(getPageSequence()); + if ( areaTreeHandler.isComplexScriptFeaturesEnabled() ) { + BidiUtil.resolveInlineDirectionality(getPageSequence()); + } LineArea title = null; if (getPageSequence().getTitleFO() != null) { @@ -169,4 +172,24 @@ super.finishPage(); } + /** + * The last page number of the sequence may be incremented, as determined by the + * force-page-count formatting property semantics + * @param lastPageNum number of sequence + * @return the forced last page number of sequence + */ + protected int getForcedLastPageNum(final int lastPageNum) { + int forcedLastPageNum = lastPageNum; + if ( lastPageNum % 2 != 0 + && ( getPageSequence().getForcePageCount() == Constants.EN_EVEN + || getPageSequence().getForcePageCount() == Constants.EN_END_ON_EVEN )) { + forcedLastPageNum++; + } else if ( lastPageNum % 2 == 0 && ( + getPageSequence().getForcePageCount() == Constants.EN_ODD + || getPageSequence().getForcePageCount() == Constants.EN_END_ON_ODD )) { + forcedLastPageNum++; + } + return forcedLastPageNum; + } + }
diff --git a/src/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java b/src/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java index fb5bd39..1eb91e0 100644 --- a/src/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java +++ b/src/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java
@@ -32,6 +32,7 @@ import org.apache.fop.area.inline.InlineBlockParent; import org.apache.fop.area.inline.InlineParent; import org.apache.fop.datatypes.Length; +import org.apache.fop.fo.flow.BasicLink; import org.apache.fop.fo.flow.Inline; import org.apache.fop.fo.flow.InlineLevel; import org.apache.fop.fo.flow.Leader; @@ -106,10 +107,6 @@ super(node); } - private Inline getInlineFO() { - return (Inline) fobj; - } - /** {@inheritDoc} */ @Override public void initialize() { @@ -136,6 +133,11 @@ alignmentBaseline = ((Leader)fobj).getAlignmentBaseline(); baselineShift = ((Leader)fobj).getBaselineShift(); dominantBaseline = ((Leader)fobj).getDominantBaseline(); + } else if (fobj instanceof BasicLink) { + alignmentAdjust = ((BasicLink)fobj).getAlignmentAdjust(); + alignmentBaseline = ((BasicLink)fobj).getAlignmentBaseline(); + baselineShift = ((BasicLink)fobj).getBaselineShift(); + dominantBaseline = ((BasicLink)fobj).getDominantBaseline(); } if (borderProps != null) { padding = borderProps.getPadding(CommonBorderPaddingBackground.BEFORE, false, this); @@ -209,8 +211,8 @@ } else { area = new InlineBlockParent(); } - if (fobj instanceof Inline) { - TraitSetter.setProducerID(area, getInlineFO().getId()); + if (fobj instanceof Inline || fobj instanceof BasicLink) { + TraitSetter.setProducerID(area, fobj.getId()); } return area; }
diff --git a/src/java/org/apache/fop/pdf/PDFFactory.java b/src/java/org/apache/fop/pdf/PDFFactory.java index 64941be..a981dae 100644 --- a/src/java/org/apache/fop/pdf/PDFFactory.java +++ b/src/java/org/apache/fop/pdf/PDFFactory.java
@@ -64,7 +64,6 @@ import org.apache.fop.fonts.truetype.TTFSubSetFile; import org.apache.fop.fonts.type1.PFBData; import org.apache.fop.fonts.type1.PFBParser; -import org.apache.xmlgraphics.xmp.Metadata; /** * This class provides method to create and register PDF objects.
diff --git a/src/java/org/apache/fop/render/AbstractRenderer.java b/src/java/org/apache/fop/render/AbstractRenderer.java index 9c84184..ca81c75 100644 --- a/src/java/org/apache/fop/render/AbstractRenderer.java +++ b/src/java/org/apache/fop/render/AbstractRenderer.java
@@ -397,22 +397,34 @@ * @param mr The main reference area */ protected void renderMainReference(MainReference mr) { - int saveIPPos = currentIPPosition; - Span span = null; List spans = mr.getSpans(); int saveBPPos = currentBPPosition; int saveSpanBPPos = saveBPPos; + int saveIPPos = currentIPPosition; for (int count = 0; count < spans.size(); count++) { span = (Span) spans.get(count); + int level = span.getBidiLevel(); + if ( level < 0 ) { + level = 0; + } + if ( ( level & 1 ) == 1 ) { + currentIPPosition += span.getIPD(); + currentIPPosition += mr.getColumnGap(); + } for (int c = 0; c < span.getColumnCount(); c++) { NormalFlow flow = span.getNormalFlow(c); - if (flow != null) { currentBPPosition = saveSpanBPPos; + if ( ( level & 1 ) == 1 ) { + currentIPPosition -= flow.getIPD(); + currentIPPosition -= mr.getColumnGap(); + } renderFlow(flow); - currentIPPosition += flow.getIPD(); - currentIPPosition += mr.getColumnGap(); + if ( ( level & 1 ) == 0 ) { + currentIPPosition += flow.getIPD(); + currentIPPosition += mr.getColumnGap(); + } } } currentIPPosition = saveIPPos;
diff --git a/src/java/org/apache/fop/render/DefaultFontResolver.java b/src/java/org/apache/fop/render/DefaultFontResolver.java index a4960c6..0642537 100644 --- a/src/java/org/apache/fop/render/DefaultFontResolver.java +++ b/src/java/org/apache/fop/render/DefaultFontResolver.java
@@ -44,4 +44,9 @@ return userAgent.resolveURI(href, userAgent.getFactory().getFontManager().getFontBaseURL()); } + /** {@inheritDoc} */ + public boolean isComplexScriptFeaturesEnabled() { + return userAgent.isComplexScriptFeaturesEnabled(); + } + }
diff --git a/src/java/org/apache/fop/render/PrintRenderer.java b/src/java/org/apache/fop/render/PrintRenderer.java index be3ace0..5a8737c 100644 --- a/src/java/org/apache/fop/render/PrintRenderer.java +++ b/src/java/org/apache/fop/render/PrintRenderer.java
@@ -83,7 +83,8 @@ FontManager fontManager = userAgent.getFactory().getFontManager(); FontCollection[] fontCollections = new FontCollection[] { new Base14FontCollection(fontManager.isBase14KerningEnabled()), - new CustomFontCollection(getFontResolver(), getFontList()) + new CustomFontCollection(getFontResolver(), getFontList(), + userAgent.isComplexScriptFeaturesEnabled()) }; fontManager.setup(getFontInfo(), fontCollections); }
diff --git a/src/java/org/apache/fop/render/PrintRendererConfigurator.java b/src/java/org/apache/fop/render/PrintRendererConfigurator.java index 90305ae..93678b4 100644 --- a/src/java/org/apache/fop/render/PrintRendererConfigurator.java +++ b/src/java/org/apache/fop/render/PrintRendererConfigurator.java
@@ -95,7 +95,9 @@ FontManager fontManager = factory.getFontManager(); if (fontResolver == null) { //Ensure that we have minimal font resolution capabilities - fontResolver = FontManager.createMinimalFontResolver(); + fontResolver + = FontManager.createMinimalFontResolver + ( userAgent.isComplexScriptFeaturesEnabled() ); } boolean strict = factory.validateUserConfigStrictly(); @@ -128,7 +130,8 @@ FontEventListener listener = new FontEventAdapter( userAgent.getEventBroadcaster()); List<EmbedFontInfo> fontList = buildFontList(cfg, fontResolver, listener); - fontCollections.add(new CustomFontCollection(fontResolver, fontList)); + fontCollections.add(new CustomFontCollection(fontResolver, fontList, + userAgent.isComplexScriptFeaturesEnabled())); } fontManager.setup(fontInfo,
diff --git a/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java b/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java index 2d78b53..296d462 100644 --- a/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java +++ b/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java
@@ -129,7 +129,8 @@ FontEventListener listener = new FontEventAdapter( userAgent.getEventBroadcaster()); List fontList = buildFontList(cfg, fontResolver, listener); - fontCollections.add(new ConfiguredFontCollection(fontResolver, fontList)); + fontCollections.add(new ConfiguredFontCollection(fontResolver, fontList, + userAgent.isComplexScriptFeaturesEnabled())); } fontManager.setup(fontInfo,
diff --git a/src/java/org/apache/fop/render/java2d/ConfiguredFontCollection.java b/src/java/org/apache/fop/render/java2d/ConfiguredFontCollection.java index de66771..7ac350d 100644 --- a/src/java/org/apache/fop/render/java2d/ConfiguredFontCollection.java +++ b/src/java/org/apache/fop/render/java2d/ConfiguredFontCollection.java
@@ -51,13 +51,14 @@ * Main constructor * @param fontResolver a font resolver * @param customFonts the list of custom fonts + * @param useComplexScriptFeatures true if complex script features enabled */ public ConfiguredFontCollection(FontResolver fontResolver, - List/*<EmbedFontInfo>*/ customFonts) { + List/*<EmbedFontInfo>*/ customFonts, boolean useComplexScriptFeatures) { this.fontResolver = fontResolver; if (this.fontResolver == null) { //Ensure that we have minimal font resolution capabilities - this.fontResolver = FontManager.createMinimalFontResolver(); + this.fontResolver = FontManager.createMinimalFontResolver(useComplexScriptFeatures); } this.embedFontInfoList = customFonts; }
diff --git a/src/java/org/apache/fop/render/java2d/Java2DRenderer.java b/src/java/org/apache/fop/render/java2d/Java2DRenderer.java index 6eaa66d..e5f3771 100644 --- a/src/java/org/apache/fop/render/java2d/Java2DRenderer.java +++ b/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
@@ -176,7 +176,8 @@ FontCollection[] fontCollections = new FontCollection[] { new Base14FontCollection(java2DFontMetrics), new InstalledFontCollection(java2DFontMetrics), - new ConfiguredFontCollection(getFontResolver(), getFontList()) + new ConfiguredFontCollection(getFontResolver(), getFontList(), + userAgent.isComplexScriptFeaturesEnabled()) }; userAgent.getFactory().getFontManager().setup( getFontInfo(), fontCollections);
diff --git a/src/java/org/apache/fop/render/pcl/PCLRendererConfigurator.java b/src/java/org/apache/fop/render/pcl/PCLRendererConfigurator.java index 605220e..84608b6 100644 --- a/src/java/org/apache/fop/render/pcl/PCLRendererConfigurator.java +++ b/src/java/org/apache/fop/render/pcl/PCLRendererConfigurator.java
@@ -119,7 +119,8 @@ FontEventListener listener = new FontEventAdapter( userAgent.getEventBroadcaster()); List fontList = buildFontList(cfg, fontResolver, listener); - fontCollections.add(new ConfiguredFontCollection(fontResolver, fontList)); + fontCollections.add(new ConfiguredFontCollection(fontResolver, fontList, + userAgent.isComplexScriptFeaturesEnabled())); } fontManager.setup(fontInfo,
diff --git a/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java b/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java index 766c939..ad50906 100644 --- a/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java +++ b/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java
@@ -112,8 +112,9 @@ graphics = createDocumentGraphics2D(); if (!isTextStroked()) { try { + boolean useComplexScriptFeatures = false; //TODO - FIX ME this.fontInfo = PDFDocumentGraphics2DConfigurator.createFontInfo( - getEffectiveConfiguration()); + getEffectiveConfiguration(), useComplexScriptFeatures); graphics.setCustomTextHandler(new NativeTextHandler(graphics, fontInfo)); } catch (FOPException fe) { throw new TranscoderException(fe);
diff --git a/src/java/org/apache/fop/render/ps/NativeTextHandler.java b/src/java/org/apache/fop/render/ps/NativeTextHandler.java index 7cf59d5..e1171b3 100644 --- a/src/java/org/apache/fop/render/ps/NativeTextHandler.java +++ b/src/java/org/apache/fop/render/ps/NativeTextHandler.java
@@ -73,7 +73,8 @@ private void setupFontInfo() { //Sets up a FontInfo with default fonts fontInfo = new FontInfo(); - FontSetup.setup(fontInfo); + boolean base14Kerning = false; + FontSetup.setup(fontInfo, base14Kerning); } /**
diff --git a/src/java/org/apache/fop/render/rtf/RTFHandler.java b/src/java/org/apache/fop/render/rtf/RTFHandler.java index 56bc028..2d06f27 100644 --- a/src/java/org/apache/fop/render/rtf/RTFHandler.java +++ b/src/java/org/apache/fop/render/rtf/RTFHandler.java
@@ -168,7 +168,8 @@ this.os = os; bDefer = true; - FontSetup.setup(fontInfo, null, new DefaultFontResolver(userAgent)); + boolean base14Kerning = false; + FontSetup.setup(fontInfo, null, new DefaultFontResolver(userAgent), base14Kerning); } /**
diff --git a/src/java/org/apache/fop/render/xml/XMLRenderer.java b/src/java/org/apache/fop/render/xml/XMLRenderer.java index a36e654..a50dcc4 100644 --- a/src/java/org/apache/fop/render/xml/XMLRenderer.java +++ b/src/java/org/apache/fop/render/xml/XMLRenderer.java
@@ -625,6 +625,7 @@ } addAreaAttributes(span); addTraitAttributes(span); + maybeAddLevelAttribute(span); startElement("span", atts); for (int c = 0; c < span.getColumnCount(); c++) { NormalFlow flow = span.getNormalFlow(c);
diff --git a/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java b/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java index 829d897..340f981 100644 --- a/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java +++ b/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java
@@ -159,7 +159,8 @@ if (fontInfo == null) { //Default minimal fonts FontInfo fontInfo = new FontInfo(); - FontSetup.setup(fontInfo); + boolean base14Kerning = false; + FontSetup.setup(fontInfo, base14Kerning); setFontInfo(fontInfo); } }
diff --git a/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java b/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java index 24974b0..954291a 100644 --- a/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java +++ b/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java
@@ -46,9 +46,11 @@ * Configures a PDFDocumentGraphics2D instance using an Avalon Configuration object. * @param graphics the PDFDocumentGraphics2D instance * @param cfg the configuration + * @param useComplexScriptFeatures true if complex script features enabled * @throws ConfigurationException if an error occurs while configuring the object */ - public void configure(PDFDocumentGraphics2D graphics, Configuration cfg) + public void configure(PDFDocumentGraphics2D graphics, Configuration cfg, + boolean useComplexScriptFeatures ) throws ConfigurationException { PDFDocument pdfDoc = graphics.getPDFDocument(); @@ -58,7 +60,7 @@ //Fonts try { - FontInfo fontInfo = createFontInfo(cfg); + FontInfo fontInfo = createFontInfo(cfg, useComplexScriptFeatures); graphics.setFontInfo(fontInfo); } catch (FOPException e) { throw new ConfigurationException("Error while setting up fonts", e); @@ -68,13 +70,15 @@ /** * Creates the {@link FontInfo} instance for the given configuration. * @param cfg the configuration + * @param useComplexScriptFeatures true if complex script features enabled * @return the font collection * @throws FOPException if an error occurs while setting up the fonts */ - public static FontInfo createFontInfo(Configuration cfg) throws FOPException { + public static FontInfo createFontInfo(Configuration cfg, boolean useComplexScriptFeatures) + throws FOPException { FontInfo fontInfo = new FontInfo(); final boolean strict = false; - FontResolver fontResolver = FontManager.createMinimalFontResolver(); + FontResolver fontResolver = FontManager.createMinimalFontResolver(useComplexScriptFeatures); //TODO The following could be optimized by retaining the FontManager somewhere FontManager fontManager = new FontManager(); if (cfg != null) { @@ -92,7 +96,8 @@ = new FontInfoConfigurator(cfg, fontManager, fontResolver, listener, strict); List/*<EmbedFontInfo>*/ fontInfoList = new java.util.ArrayList/*<EmbedFontInfo>*/(); fontInfoConfigurator.configure(fontInfoList); - fontCollections.add(new CustomFontCollection(fontResolver, fontInfoList)); + fontCollections.add(new CustomFontCollection(fontResolver, fontInfoList, + fontResolver.isComplexScriptFeaturesEnabled())); } fontManager.setup(fontInfo, (FontCollection[])fontCollections.toArray(
diff --git a/src/java/org/apache/fop/svg/PDFGraphics2D.java b/src/java/org/apache/fop/svg/PDFGraphics2D.java index 4ae8e72..f3d5cfc 100644 --- a/src/java/org/apache/fop/svg/PDFGraphics2D.java +++ b/src/java/org/apache/fop/svg/PDFGraphics2D.java
@@ -961,7 +961,8 @@ preparePainting(); FontInfo specialFontInfo = new FontInfo(); - FontSetup.setup(specialFontInfo); + boolean base14Kerning = false; + FontSetup.setup(specialFontInfo, base14Kerning); PDFResources res = pdfDoc.getFactory().makeResources(); PDFResourceContext context = new PDFResourceContext(res);
diff --git a/src/java/org/apache/fop/svg/PDFTranscoder.java b/src/java/org/apache/fop/svg/PDFTranscoder.java index bf08b2f..8cf396a 100644 --- a/src/java/org/apache/fop/svg/PDFTranscoder.java +++ b/src/java/org/apache/fop/svg/PDFTranscoder.java
@@ -126,7 +126,8 @@ if (effCfg != null) { PDFDocumentGraphics2DConfigurator configurator = new PDFDocumentGraphics2DConfigurator(); - configurator.configure(graphics, effCfg); + boolean useComplexScriptFeatures = false; //TODO - FIX ME + configurator.configure(graphics, effCfg, useComplexScriptFeatures); } else { graphics.setupDefaultFontInfo(); }
diff --git a/src/java/org/apache/fop/util/CharUtilities.java b/src/java/org/apache/fop/util/CharUtilities.java index 4f96d0a..8a55cb1 100644 --- a/src/java/org/apache/fop/util/CharUtilities.java +++ b/src/java/org/apache/fop/util/CharUtilities.java
@@ -1117,7 +1117,14 @@ return sb.toString(); } - private static String padLeft ( String s, int width, char pad ) { + /** + * Pad a string S on left out to width W using padding character PAD. + * @param s string to pad + * @param width width of field to add padding + * @param pad character to use for padding + * @return padded string + */ + public static String padLeft ( String s, int width, char pad ) { StringBuffer sb = new StringBuffer(); for ( int i = s.length(); i < width; i++ ) { sb.append(pad); @@ -1917,4 +1924,96 @@ } } + /** + * Convert Java string (UTF-16) to a Unicode scalar array (UTF-32). + * Note that if there are any non-BMP encoded characters present in the + * input, then the number of entries in the output array will be less + * than the number of elements in the input string. Any + * @param s input string + * @param substitution value to substitute for ill-formed surrogate + * @param errorOnSubstitution throw runtime exception (IllegalArgumentException) in + * case this argument is true and a substitution would be attempted + * @return output scalar array + * @throws IllegalArgumentException if substitution required and errorOnSubstitution + * is not false + */ + public static Integer[] toUTF32 ( String s, int substitution, boolean errorOnSubstitution ) + throws IllegalArgumentException { + int n; + if ( ( n = s.length() ) == 0 ) { + return new Integer[0]; + } else { + Integer[] sa = new Integer [ n ]; + int k = 0; + for ( int i = 0; i < n; i++ ) { + int c = (int) s.charAt(i); + if ( ( c >= 0xD800 ) && ( c < 0xE000 ) ) { + int s1 = c; + int s2 = ( ( i + 1 ) < n ) ? (int) s.charAt ( i + 1 ) : 0; + if ( s1 < 0xDC00 ) { + if ( ( s2 >= 0xDC00 ) && ( s2 < 0xE000 ) ) { + c = ( ( s1 - 0xD800 ) << 10 ) + ( s2 - 0xDC00 ) + 65536; + i++; + } else { + if ( errorOnSubstitution ) { + throw new IllegalArgumentException + ( "isolated high (leading) surrogate" ); + } else { + c = substitution; + } + } + } else { + if ( errorOnSubstitution ) { + throw new IllegalArgumentException + ( "isolated low (trailing) surrogate" ); + } else { + c = substitution; + } + } + } + sa[k++] = c; + } + if ( k == n ) { + return sa; + } else { + Integer[] na = new Integer [ k ]; + System.arraycopy ( sa, 0, na, 0, k ); + return na; + } + } + } + + /** + * Convert a Unicode scalar array (UTF-32) a Java string (UTF-16). + * @param sa input scalar array + * @return output (UTF-16) string + * @throws IllegalArgumentException if an input scalar value is illegal, + * e.g., a surrogate or out of range + */ + public static String fromUTF32 ( Integer[] sa ) throws IllegalArgumentException { + StringBuffer sb = new StringBuffer(); + for ( int s : sa ) { + if ( s < 65535 ) { + if ( ( s < 0xD800 ) || ( s > 0xDFFF ) ) { + sb.append ( (char) s ); + } else { + String ncr = charToNCRef(s); + throw new IllegalArgumentException + ( "illegal scalar value 0x" + ncr.substring(2,ncr.length() - 1) + + "; cannot be UTF-16 surrogate" ); + } + } else if ( s < 1114112 ) { + int s1 = ( ( ( s - 65536 ) >> 10 ) & 0x3FF ) + 0xD800; + int s2 = ( ( ( s - 65536 ) >> 0 ) & 0x3FF ) + 0xDC00; + sb.append ( (char) s1 ); + sb.append ( (char) s2 ); + } else { + String ncr = charToNCRef(s); + throw new IllegalArgumentException + ( "illegal scalar value 0x" + ncr.substring(2,ncr.length() - 1) + + "; out of range for UTF-16" ); + } + } + return sb.toString(); + } }
diff --git a/src/java/org/apache/fop/util/NumberConverter.java b/src/java/org/apache/fop/util/NumberConverter.java new file mode 100644 index 0000000..536303a --- /dev/null +++ b/src/java/org/apache/fop/util/NumberConverter.java
@@ -0,0 +1,1616 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.util; + +import java.util.ArrayList; +import java.util.List; + +// CSOFF: LineLengthCheck +// CSOFF: InnerAssignmentCheck +// CSOFF: NoWhitespaceAfterCheck +// CSOFF: AvoidNestedBlocksCheck + +/** + * Implementation of Number to String Conversion algorithm specified by + * XSL Transformations (XSLT) Version 2.0, W3C Recommendation, 23 January 2007. + * + * This algorithm differs from that specified in XSLT 1.0 in the following + * ways: + * <ul> + * <li>input numbers are greater than or equal to zero rather than greater than zero;</li> + * <li>introduces format tokens { w, W, Ww };</li> + * <li>introduces ordinal parameter to generate ordinal numbers;</li> + * </ul> + * + * Implementation Defaults and Limitations + * <ul> + * <li>If language parameter is unspecified (null or empty string), then the value + * of DEFAULT_LANGUAGE is used, which is defined below as "eng" (English).</li> + * <li>Only English, French, and Spanish word numerals are supported, and only if less than one trillion (1,000,000,000,000).</li> + * <li>Ordinal word numerals are supported for French and Spanish only when less than or equal to ten (10).</li> + * </ul> + * + * Implementation Notes + * <ul> + * <li>In order to handle format tokens outside the Unicode BMP, all processing is + * done in Unicode Scalar Values represented with Integer and Integer[] + * types. Without affecting behavior, this may be subsequently optimized to + * use int and int[] types.</li> + * <li>In order to communicate various sub-parameters, including ordinalization, a <em>features</em> + * is employed, which consists of comma separated name and optional value tokens, where name and value + * are separated by an equals '=' sign.</li> + * <li>Ordinal numbers are selected by specifying a word based format token in combination with a 'ordinal' feature with no value, in which case + * the features 'male' and 'female' may be used to specify gender for gender sensitive languages. For example, the feature string "ordinal,female" + * selects female ordinals.</li> + * </ul> + * + * @author Glenn Adams + */ +public class NumberConverter { + + /** alphabetical */ + public static final int LETTER_VALUE_ALPHABETIC = 1; + /** traditional */ + public static final int LETTER_VALUE_TRADITIONAL = 2; + + /** no token type */ + private static final int TOKEN_NONE = 0; + /** alhphanumeric token type */ + private static final int TOKEN_ALPHANUMERIC = 1; + /** nonalphanumeric token type */ + private static final int TOKEN_NONALPHANUMERIC = 2; + /** default token */ + private static final Integer[] DEFAULT_TOKEN = new Integer[] { (int) '1' }; + /** default separator */ + private static final Integer[] DEFAULT_SEPARATOR = new Integer[] { (int) '.' }; + /** default language */ + private static final String DEFAULT_LANGUAGE = "eng"; + + /** prefix token */ + private Integer[] prefix; + /** suffix token */ + private Integer[] suffix; + /** sequence of tokens, as parsed from format */ + private Integer[][] tokens; + /** sequence of separators, as parsed from format */ + private Integer[][] separators; + /** grouping separator */ + private int groupingSeparator; + /** grouping size */ + private int groupingSize; + /** letter value */ + private int letterValue; + /** letter value system */ + private String features; + /** language */ + private String language; + /** country */ + private String country; + + /** + * Construct parameterized number converter. + * @param format format for the page number (may be null or empty, which is treated as null) + * @param groupingSeparator grouping separator (if zero, then no grouping separator applies) + * @param groupingSize grouping size (if zero or negative, then no grouping size applies) + * @param letterValue letter value (must be one of the above letter value enumeration values) + * @param features features (feature sub-parameters) + * @param language (may be null or empty, which is treated as null) + * @param country (may be null or empty, which is treated as null) + * @throws IllegalArgumentException if format is not a valid UTF-16 string (e.g., has unpaired surrogate) + */ + public NumberConverter ( String format, int groupingSeparator, int groupingSize, int letterValue, String features, String language, String country ) + throws IllegalArgumentException { + this.groupingSeparator = groupingSeparator; + this.groupingSize = groupingSize; + this.letterValue = letterValue; + this.features = features; + this.language = ( language != null ) ? language.toLowerCase() : null; + this.country = ( country != null ) ? country.toLowerCase() : null; + parseFormatTokens ( format ); + } + + /** + * Convert a number to string according to conversion parameters. + * @param number number to conver + * @return string representing converted number + */ + public String convert ( long number ) { + List<Long> numbers = new ArrayList<Long>(); + numbers.add ( number ); + return convert ( numbers ); + } + + /** + * Convert list of numbers to string according to conversion parameters. + * @param numbers list of numbers to convert + * @return string representing converted list of numbers + */ + public String convert ( List<Long> numbers ) { + List<Integer> scalars = new ArrayList<Integer>(); + if ( prefix != null ) { + appendScalars ( scalars, prefix ); + } + convertNumbers ( scalars, numbers ); + if ( suffix != null ) { + appendScalars ( scalars, suffix ); + } + return scalarsToString ( scalars ); + } + + private void parseFormatTokens ( String format ) throws IllegalArgumentException { + List<Integer[]> tokens = new ArrayList<Integer[]>(); + List<Integer[]> separators = new ArrayList<Integer[]>(); + if ( ( format == null ) || ( format.length() == 0 ) ) { + format = "1"; + } + int tokenType = TOKEN_NONE; + List<Integer> token = new ArrayList<Integer>(); + Integer[] ca = CharUtilities.toUTF32 ( format, 0, true ); + for ( int i = 0, n = ca.length; i < n; i++ ) { + int c = ca[i]; + int tokenTypeNew = isAlphaNumeric ( c ) ? TOKEN_ALPHANUMERIC : TOKEN_NONALPHANUMERIC; + if ( tokenTypeNew != tokenType ) { + if ( token.size() > 0 ) { + if ( tokenType == TOKEN_ALPHANUMERIC ) { + tokens.add ( token.toArray ( new Integer [ token.size() ] ) ); + } else { + separators.add ( token.toArray ( new Integer [ token.size() ] ) ); + } + token.clear(); + } + tokenType = tokenTypeNew; + } + token.add ( c ); + } + if ( token.size() > 0 ) { + if ( tokenType == TOKEN_ALPHANUMERIC ) { + tokens.add ( token.toArray ( new Integer [ token.size() ] ) ); + } else { + separators.add ( token.toArray ( new Integer [ token.size() ] ) ); + } + } + if ( ! separators.isEmpty() ) { + this.prefix = separators.remove ( 0 ); + } + if ( ! separators.isEmpty() ) { + this.suffix = separators.remove ( separators.size() - 1 ); + } + this.separators = separators.toArray ( new Integer [ separators.size() ] [] ); + this.tokens = tokens.toArray ( new Integer [ tokens.size() ] [] ); + } + + private static boolean isAlphaNumeric ( int c ) { + switch ( Character.getType ( c ) ) { + case Character.DECIMAL_DIGIT_NUMBER: // Nd + case Character.LETTER_NUMBER: // Nl + case Character.OTHER_NUMBER: // No + case Character.UPPERCASE_LETTER: // Lu + case Character.LOWERCASE_LETTER: // Ll + case Character.TITLECASE_LETTER: // Lt + case Character.MODIFIER_LETTER: // Lm + case Character.OTHER_LETTER: // Lo + return true; + default: + return false; + } + } + + private void convertNumbers ( List<Integer> scalars, List<Long> numbers ) { + Integer[] tknLast = DEFAULT_TOKEN; + int tknIndex = 0; + int tknCount = tokens.length; + int sepIndex = 0; + int sepCount = separators.length; + int numIndex = 0; + for ( Long number : numbers ) { + Integer[] sep = null; + Integer[] tkn; + if ( tknIndex < tknCount ) { + if ( numIndex > 0 ) { + if ( sepIndex < sepCount ) { + sep = separators [ sepIndex++ ]; + } else { + sep = DEFAULT_SEPARATOR; + } + } + tkn = tokens [ tknIndex++ ]; + } else { + tkn = tknLast; + } + appendScalars ( scalars, convertNumber ( number, sep, tkn ) ); + tknLast = tkn; + numIndex++; + } + } + + private Integer[] convertNumber ( long number, Integer[] separator, Integer[] token ) { + List<Integer> sl = new ArrayList<Integer>(); + if ( separator != null ) { + appendScalars ( sl, separator ); + } + if ( token != null ) { + appendScalars ( sl, formatNumber ( number, token ) ); + } + return sl.toArray ( new Integer [ sl.size() ] ); + } + + private Integer[] formatNumber ( long number, Integer[] token ) { + Integer[] fn = null; + assert token.length > 0; + if ( number < 0 ) { + throw new IllegalArgumentException ( "number must be non-negative" ); + } else if ( token.length == 1 ) { + int s = token[0].intValue(); + switch ( s ) { + case (int) '1': + { + fn = formatNumberAsDecimal ( number, (int) '1', 1 ); + break; + } + case (int) 'W': + case (int) 'w': + { + fn = formatNumberAsWord ( number, ( s == (int) 'W' ) ? Character.UPPERCASE_LETTER : Character.LOWERCASE_LETTER ); + break; + } + case (int) 'A': // handled as numeric sequence + case (int) 'a': // handled as numeric sequence + case (int) 'I': // handled as numeric special + case (int) 'i': // handled as numeric special + default: + { + if ( isStartOfDecimalSequence ( s ) ) { + fn = formatNumberAsDecimal ( number, s, 1 ); + } else if ( isStartOfAlphabeticSequence ( s ) ) { + fn = formatNumberAsSequence ( number, s, getSequenceBase ( s ), null ); + } else if ( isStartOfNumericSpecial ( s ) ) { + fn = formatNumberAsSpecial ( number, s ); + } else { + fn = null; + } + break; + } + } + } else if ( ( token.length == 2 ) && ( token[0] == (int) 'W' ) && ( token[1] == (int) 'w' ) ) { + fn = formatNumberAsWord ( number, Character.TITLECASE_LETTER ); + } else if ( isPaddedOne ( token ) ) { + int s = token [ token.length - 1 ].intValue(); + fn = formatNumberAsDecimal ( number, s, token.length ); + } else { + throw new IllegalArgumentException ( "invalid format token: \"" + CharUtilities.fromUTF32 ( token ) + "\"" ); + } + if ( fn == null ) { + fn = formatNumber ( number, DEFAULT_TOKEN ); + } + assert fn != null; + return fn; + } + + /** + * Format NUMBER as decimal using characters denoting digits that start at ONE, + * adding one or more (zero) padding characters as needed to fill out field WIDTH. + * @param number to be formatted + * @param one unicode scalar value denoting numeric value 1 + * @param width non-negative integer denoting field width of number, possible including padding + * @return formatted number as array of unicode scalars + */ + private Integer[] formatNumberAsDecimal ( long number, int one, int width ) { + assert Character.getNumericValue ( one ) == 1; + assert Character.getNumericValue ( one - 1 ) == 0; + assert Character.getNumericValue ( one + 8 ) == 9; + List<Integer> sl = new ArrayList<Integer>(); + int zero = one - 1; + while ( number > 0 ) { + long digit = number % 10; + sl.add ( 0, zero + (int) digit ); + number = number / 10; + } + while ( width > sl.size() ) { + sl.add ( 0, zero ); + } + if ( ( groupingSize != 0 ) && ( groupingSeparator != 0 ) ) { + sl = performGrouping ( sl, groupingSize, groupingSeparator ); + } + return sl.toArray ( new Integer [ sl.size() ] ); + } + + private static List<Integer> performGrouping ( List<Integer> sl, int groupingSize, int groupingSeparator ) { + assert groupingSize > 0; + assert groupingSeparator != 0; + if ( sl.size() > groupingSize ) { + List<Integer> gl = new ArrayList<Integer>(); + for ( int i = 0, n = sl.size(), g = 0; i < n; i++ ) { + int k = n - i - 1; + if ( g == groupingSize ) { + gl.add ( 0, groupingSeparator ); + g = 1; + } else { + g++; + } + gl.add ( 0, sl.get ( k ) ); + } + return gl; + } else { + return sl; + } + } + + + /** + * Format NUMBER as using sequence of characters that start at ONE, and + * having BASE radix. + * @param number to be formatted + * @param one unicode scalar value denoting start of sequence (numeric value 1) + * @param base number of elements in sequence + * @param map if non-null, then maps sequences indices to unicode scalars + * @return formatted number as array of unicode scalars + */ + private Integer[] formatNumberAsSequence ( long number, int one, int base, int[] map ) { + assert base > 1; + assert ( map == null ) || ( map.length >= base ); + List<Integer> sl = new ArrayList<Integer>(); + if ( number == 0 ) { + return null; + } else { + long n = number; + while ( n > 0 ) { + int d = (int) ( ( n - 1 ) % (long) base ); + int s = ( map != null ) ? map [ d ] : ( one + d ); + sl.add ( 0, s ); + n = ( n - 1 ) / base; + } + return sl.toArray ( new Integer [ sl.size() ] ); + } + } + + /** + * Format NUMBER as using special system that starts at ONE. + * @param number to be formatted + * @param one unicode scalar value denoting start of system (numeric value 1) + * @return formatted number as array of unicode scalars + */ + private Integer[] formatNumberAsSpecial ( long number, int one ) { + SpecialNumberFormatter f = getSpecialFormatter ( one, letterValue, features, language, country ); + if ( f != null ) { + return f.format ( number, one, letterValue, features, language, country ); + } else { + return null; + } + } + + /** + * Format NUMBER as word according to TYPE, which must be either + * Character.UPPERCASE_LETTER, Character.LOWERCASE_LETTER, or + * Character.TITLECASE_LETTER. Makes use of this.language to + * determine language of word. + * @param number to be formatted + * @param caseType unicode character type for case conversion + * @return formatted number as array of unicode scalars + */ + private Integer[] formatNumberAsWord ( long number, int caseType ) { + SpecialNumberFormatter f = null; + if ( isLanguage ( "eng" ) ) { + f = new EnglishNumberAsWordFormatter ( caseType ); + } else if ( isLanguage ( "spa" ) ) { + f = new SpanishNumberAsWordFormatter ( caseType ); + } else if ( isLanguage ( "fra" ) ) { + f = new FrenchNumberAsWordFormatter ( caseType ); + } else { + f = new EnglishNumberAsWordFormatter ( caseType ); + } + return f.format ( number, 0, letterValue, features, language, country ); + } + + private boolean isLanguage ( String iso3Code ) { + if ( language == null ) { + return false; + } else if ( language.equals ( iso3Code ) ) { + return true; + } else { + return isSameLanguage ( iso3Code, language ); + } + } + + private static String[][] equivalentLanguages = { + { "eng", "en" }, + { "fra", "fre", "fr" }, + { "spa", "es" }, + }; + + private static boolean isSameLanguage ( String i3c, String lc ) { + for ( String[] el : equivalentLanguages ) { + assert el.length >= 2; + if ( el[0].equals ( i3c ) ) { + for ( int i = 0, n = el.length; i < n; i++ ) { + if ( el[i].equals ( lc ) ) { + return true; + } + } + return false; + } + } + return false; + } + + private static boolean hasFeature ( String features, String feature ) { + if ( features != null ) { + assert feature != null; + assert feature.length() != 0; + String[] fa = features.split(","); + for ( String f : fa ) { + String[] fp = f.split("="); + assert fp.length > 0; + String fn = fp[0]; + String fv = ( fp.length > 1 ) ? fp[1] : ""; + if ( fn.equals ( feature ) ) { + return true; + } + } + } + return false; + } + + /* not yet used + private static String getFeatureValue ( String features, String feature ) { + if ( features != null ) { + assert feature != null; + assert feature.length() != 0; + String[] fa = features.split(","); + for ( String f : fa ) { + String[] fp = f.split("="); + assert fp.length > 0; + String fn = fp[0]; + String fv = ( fp.length > 1 ) ? fp[1] : ""; + if ( fn.equals ( feature ) ) { + return fv; + } + } + } + return ""; + } + */ + + private static void appendScalars ( List<Integer> scalars, Integer[] sa ) { + for ( Integer s : sa ) { + scalars.add ( s ); + } + } + + private static String scalarsToString ( List<Integer> scalars ) { + Integer[] sa = scalars.toArray ( new Integer [ scalars.size() ] ); + return CharUtilities.fromUTF32 ( sa ); + } + + private static boolean isPaddedOne ( Integer[] token ) { + if ( getDecimalValue ( token [ token.length - 1 ] ) != 1 ) { + return false; + } else { + for ( int i = 0, n = token.length - 1; i < n; i++ ) { + if ( getDecimalValue ( token [ i ] ) != 0 ) { + return false; + } + } + return true; + } + } + + private static int getDecimalValue ( Integer scalar ) { + int s = scalar.intValue(); + if ( Character.getType ( s ) == Character.DECIMAL_DIGIT_NUMBER ) { + return Character.getNumericValue ( s ); + } else { + return -1; + } + } + + private static boolean isStartOfDecimalSequence ( int s ) { + return ( Character.getNumericValue ( s ) == 1 ) + && ( Character.getNumericValue ( s - 1 ) == 0 ) + && ( Character.getNumericValue ( s + 8 ) == 9 ); + } + + private static int[][] supportedAlphabeticSequences = { + { 'A', 26 }, // A...Z + { 'a', 26 }, // a...z + }; + + private static boolean isStartOfAlphabeticSequence ( int s ) { + for ( int[] ss : supportedAlphabeticSequences ) { + assert ss.length >= 2; + if ( ss[0] == s ) { + return true; + } + } + return false; + } + + private static int getSequenceBase ( int s ) { + for ( int[] ss : supportedAlphabeticSequences ) { + assert ss.length >= 2; + if ( ss[0] == s ) { + return ss[1]; + } + } + return 0; + } + + private static int[][] supportedSpecials = { + { 'I' }, // latin - uppercase roman numerals + { 'i' }, // latin - lowercase roman numerals + { '\u0391' }, // greek - uppercase isopsephry numerals + { '\u03B1' }, // greek - lowercase isopsephry numerals + { '\u05D0' }, // hebrew - gematria numerals + { '\u0623' }, // arabic - abjadi numberals + { '\u0627' }, // arabic - either abjadi or hijai alphabetic sequence + { '\u0E01' }, // thai - default alphabetic sequence + { '\u3042' }, // kana - hiragana (gojuon) - default alphabetic sequence + { '\u3044' }, // kana - hiragana (iroha) + { '\u30A2' }, // kana - katakana (gojuon) - default alphabetic sequence + { '\u30A4' }, // kana - katakana (iroha) + }; + + private static boolean isStartOfNumericSpecial ( int s ) { + for ( int[] ss : supportedSpecials ) { + assert ss.length >= 1; + if ( ss[0] == s ) { + return true; + } + } + return false; + } + + private SpecialNumberFormatter getSpecialFormatter ( int one, int letterValue, String features, String language, String country ) { + if ( one == (int) 'I' ) { + return new RomanNumeralsFormatter(); + } else if ( one == (int) 'i' ) { + return new RomanNumeralsFormatter(); + } else if ( one == (int) '\u0391' ) { + return new IsopsephryNumeralsFormatter(); + } else if ( one == (int) '\u03B1' ) { + return new IsopsephryNumeralsFormatter(); + } else if ( one == (int) '\u05D0' ) { + return new GematriaNumeralsFormatter(); + } else if ( one == (int) '\u0623' ) { + return new ArabicNumeralsFormatter(); + } else if ( one == (int) '\u0627' ) { + return new ArabicNumeralsFormatter(); + } else if ( one == (int) '\u0E01' ) { + return new ThaiNumeralsFormatter(); + } else if ( one == (int) '\u3042' ) { + return new KanaNumeralsFormatter(); + } else if ( one == (int) '\u3044' ) { + return new KanaNumeralsFormatter(); + } else if ( one == (int) '\u30A2' ) { + return new KanaNumeralsFormatter(); + } else if ( one == (int) '\u30A4' ) { + return new KanaNumeralsFormatter(); + } else { + return null; + } + } + + private static Integer[] toUpperCase ( Integer[] sa ) { + assert sa != null; + for ( int i = 0, n = sa.length; i < n; i++ ) { + Integer s = sa [ i ]; + sa [ i ] = Character.toUpperCase ( s ); + } + return sa; + } + + private static Integer[] toLowerCase ( Integer[] sa ) { + assert sa != null; + for ( int i = 0, n = sa.length; i < n; i++ ) { + Integer s = sa [ i ]; + sa [ i ] = Character.toLowerCase ( s ); + } + return sa; + } + + /* not yet used + private static Integer[] toTitleCase ( Integer[] sa ) { + assert sa != null; + if ( sa.length > 0 ) { + sa [ 0 ] = Character.toTitleCase ( sa [ 0 ] ); + } + return sa; + } + */ + + private static List<String> convertWordCase ( List<String> words, int caseType ) { + List<String> wl = new ArrayList<String>(); + for ( String w : words ) { + wl.add ( convertWordCase ( w, caseType ) ); + } + return wl; + } + + private static String convertWordCase ( String word, int caseType ) { + if ( caseType == Character.UPPERCASE_LETTER ) { + return word.toUpperCase(); + } else if ( caseType == Character.LOWERCASE_LETTER ) { + return word.toLowerCase(); + } else if ( caseType == Character.TITLECASE_LETTER ) { + StringBuffer sb = new StringBuffer(); + for ( int i = 0, n = word.length(); i < n; i++ ) { + String s = word.substring ( i, i + 1 ); + if ( i == 0 ) { + sb.append ( s.toUpperCase() ); + } else { + sb.append ( s.toLowerCase() ); + } + } + return sb.toString(); + } else { + return word; + } + } + + private static String joinWords ( List<String> words, String separator ) { + StringBuffer sb = new StringBuffer(); + for ( String w : words ) { + if ( sb.length() > 0 ) { + sb.append ( separator ); + } + sb.append ( w ); + } + return sb.toString(); + } + + /** + * Special number formatter. + */ + interface SpecialNumberFormatter { + /** + * Format number with special numeral system. + * @param number to be formatted + * @param one unicode scalar value denoting numeric value 1 + * @param letterValue letter value (must be one of the above letter value enumeration values) + * @param features features (feature sub-parameters) + * @param language denotes applicable language + * @param country denotes applicable country + * @return formatted number as array of unicode scalars + */ + Integer[] format ( long number, int one, int letterValue, String features, String language, String country ); + } + + /** + * English Word Numerals + */ + private static String[] englishWordOnes = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; + private static String[] englishWordTeens = { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; + private static String[] englishWordTens = { "", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; + private static String[] englishWordOthers = { "hundred", "thousand", "million", "billion" }; + private static String[] englishWordOnesOrd = { "none", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth" }; + private static String[] englishWordTeensOrd = { "tenth", "eleventh", "twelfth", "thirteenth", "fourteenth", "fifteenth", "sixteenth", "seventeenth", "eighteenth", "nineteenth" }; + private static String[] englishWordTensOrd = { "", "tenth", "twentieth", "thirtieth", "fortieth", "fiftieth", "sixtieth", "seventieth", "eightieth", "ninetith" }; + private static String[] englishWordOthersOrd = { "hundredth", "thousandth", "millionth", "billionth" }; + private static class EnglishNumberAsWordFormatter implements SpecialNumberFormatter { + private int caseType = Character.UPPERCASE_LETTER; + EnglishNumberAsWordFormatter ( int caseType ) { + this.caseType = caseType; + } + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + List<String> wl = new ArrayList<String>(); + if ( number >= 1000000000000L ) { + return null; + } else { + boolean ordinal = hasFeature ( features, "ordinal" ); + if ( number == 0 ) { + wl.add ( englishWordOnes [ 0 ] ); + } else if ( ordinal && ( number < 10 ) ) { + wl.add ( englishWordOnesOrd [ (int) number ] ); + } else { + int ones = (int) ( number % 1000 ); + int thousands = (int) ( ( number / 1000 ) % 1000 ); + int millions = (int) ( ( number / 1000000 ) % 1000 ); + int billions = (int) ( ( number / 1000000000 ) % 1000 ); + if ( billions > 0 ) { + wl = formatOnesInThousand ( wl, billions ); + if ( ordinal && ( ( number % 1000000000 ) == 0 ) ) { + wl.add ( englishWordOthersOrd[3] ); + } else { + wl.add ( englishWordOthers[3] ); + } + } + if ( millions > 0 ) { + wl = formatOnesInThousand ( wl, millions ); + if ( ordinal && ( ( number % 1000000 ) == 0 ) ) { + wl.add ( englishWordOthersOrd[2] ); + } else { + wl.add ( englishWordOthers[2] ); + } + } + if ( thousands > 0 ) { + wl = formatOnesInThousand ( wl, thousands ); + if ( ordinal && ( ( number % 1000 ) == 0 ) ) { + wl.add ( englishWordOthersOrd[1] ); + } else { + wl.add ( englishWordOthers[1] ); + } + } + if ( ones > 0 ) { + wl = formatOnesInThousand ( wl, ones, ordinal ); + } + } + wl = convertWordCase ( wl, caseType ); + return CharUtilities.toUTF32 ( joinWords ( wl, " " ), 0, true ); + } + } + private List<String> formatOnesInThousand ( List<String> wl, int number ) { + return formatOnesInThousand ( wl, number, false ); + } + private List<String> formatOnesInThousand ( List<String> wl, int number, boolean ordinal ) { + assert number < 1000; + int ones = number % 10; + int tens = ( number / 10 ) % 10; + int hundreds = ( number / 100 ) % 10; + if ( hundreds > 0 ) { + wl.add ( englishWordOnes [ hundreds ] ); + if ( ordinal && ( ( number % 100 ) == 0 ) ) { + wl.add ( englishWordOthersOrd[0] ); + } else { + wl.add ( englishWordOthers[0] ); + } + } + if ( tens > 0 ) { + if ( tens == 1 ) { + if ( ordinal ) { + wl.add ( englishWordTeensOrd [ ones ] ); + } else { + wl.add ( englishWordTeens [ ones ] ); + } + } else { + if ( ordinal && ( ones == 0 ) ) { + wl.add ( englishWordTensOrd [ tens ] ); + } else { + wl.add ( englishWordTens [ tens ] ); + } + if ( ones > 0 ) { + if ( ordinal ) { + wl.add ( englishWordOnesOrd [ ones ] ); + } else { + wl.add ( englishWordOnes [ ones ] ); + } + } + } + } else if ( ones > 0 ) { + if ( ordinal ) { + wl.add ( englishWordOnesOrd [ ones ] ); + } else { + wl.add ( englishWordOnes [ ones ] ); + } + } + return wl; + } + } + + /** + * French Word Numerals + */ + private static String[] frenchWordOnes = { "z\u00e9ro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf" }; + private static String[] frenchWordTeens = { "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf" }; + private static String[] frenchWordTens = { "", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante-dix", "quatre-vingt", "quatre-vingt-dix" }; + private static String[] frenchWordOthers = { "cent", "cents", "mille", "million", "millions", "milliard", "milliards" }; + private static String[] frenchWordOnesOrdMale = { "premier", "deuxi\u00e8me", "troisi\u00e8me", "quatri\u00e8me", "cinqui\u00e8me", "sixi\u00e8me", "septi\u00e8me", "huiti\u00e8me", "neuvi\u00e8me", "dixi\u00e8me" }; + private static String[] frenchWordOnesOrdFemale = { "premi\u00e8re", "deuxi\u00e8me", "troisi\u00e8me", "quatri\u00e8me", "cinqui\u00e8me", "sixi\u00e8me", "septi\u00e8me", "huiti\u00e8me", "neuvi\u00e8me", "dixi\u00e8me" }; + private static class FrenchNumberAsWordFormatter implements SpecialNumberFormatter { + private int caseType = Character.UPPERCASE_LETTER; + FrenchNumberAsWordFormatter ( int caseType ) { + this.caseType = caseType; + } + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + List<String> wl = new ArrayList<String>(); + if ( number >= 1000000000000L ) { + return null; + } else { + boolean ordinal = hasFeature ( features, "ordinal" ); + if ( number == 0 ) { + wl.add ( frenchWordOnes [ 0 ] ); + } else if ( ordinal && ( number <= 10 ) ) { + boolean female = hasFeature ( features, "female" ); + if ( female ) { + wl.add ( frenchWordOnesOrdFemale [ (int) number ] ); + } else { + wl.add ( frenchWordOnesOrdMale [ (int) number ] ); + } + } else { + int ones = (int) ( number % 1000 ); + int thousands = (int) ( ( number / 1000 ) % 1000 ); + int millions = (int) ( ( number / 1000000 ) % 1000 ); + int billions = (int) ( ( number / 1000000000 ) % 1000 ); + if ( billions > 0 ) { + wl = formatOnesInThousand ( wl, billions ); + if ( billions == 1 ) { + wl.add ( frenchWordOthers[5] ); + } else { + wl.add ( frenchWordOthers[6] ); + } + } + if ( millions > 0 ) { + wl = formatOnesInThousand ( wl, millions ); + if ( millions == 1 ) { + wl.add ( frenchWordOthers[3] ); + } else { + wl.add ( frenchWordOthers[4] ); + } + } + if ( thousands > 0 ) { + if ( thousands > 1 ) { + wl = formatOnesInThousand ( wl, thousands ); + } + wl.add ( frenchWordOthers[2] ); + } + if ( ones > 0 ) { + wl = formatOnesInThousand ( wl, ones ); + } + } + wl = convertWordCase ( wl, caseType ); + return CharUtilities.toUTF32 ( joinWords ( wl, " " ), 0, true ); + } + } + private List<String> formatOnesInThousand ( List<String> wl, int number ) { + assert number < 1000; + int ones = number % 10; + int tens = ( number / 10 ) % 10; + int hundreds = ( number / 100 ) % 10; + if ( hundreds > 0 ) { + if ( hundreds > 1 ) { + wl.add ( frenchWordOnes [ hundreds ] ); + } + if ( ( hundreds > 1 ) && ( tens == 0 ) && ( ones == 0 ) ) { + wl.add ( frenchWordOthers[1] ); + } else { + wl.add ( frenchWordOthers[0] ); + } + } + if ( tens > 0 ) { + if ( tens == 1 ) { + wl.add ( frenchWordTeens [ ones ] ); + } else if ( tens < 7 ) { + if ( ones == 1 ) { + wl.add ( frenchWordTens [ tens ] ); + wl.add ( "et" ); + wl.add ( frenchWordOnes [ ones ] ); + } else { + StringBuffer sb = new StringBuffer(); + sb.append ( frenchWordTens [ tens ] ); + if ( ones > 0 ) { + sb.append ( '-' ); + sb.append ( frenchWordOnes [ ones ] ); + } + wl.add ( sb.toString() ); + } + } else if ( tens == 7 ) { + if ( ones == 1 ) { + wl.add ( frenchWordTens [ 6 ] ); + wl.add ( "et" ); + wl.add ( frenchWordTeens [ ones ] ); + } else { + StringBuffer sb = new StringBuffer(); + sb.append ( frenchWordTens [ 6 ] ); + sb.append ( '-' ); + sb.append ( frenchWordTeens [ ones ] ); + wl.add ( sb.toString() ); + } + } else if ( tens == 8 ) { + StringBuffer sb = new StringBuffer(); + sb.append ( frenchWordTens [ tens ] ); + if ( ones > 0 ) { + sb.append ( '-' ); + sb.append ( frenchWordOnes [ ones ] ); + } else { + sb.append ( 's' ); + } + wl.add ( sb.toString() ); + } else if ( tens == 9 ) { + StringBuffer sb = new StringBuffer(); + sb.append ( frenchWordTens [ 8 ] ); + sb.append ( '-' ); + sb.append ( frenchWordTeens [ ones ] ); + wl.add ( sb.toString() ); + } + } else if ( ones > 0 ) { + wl.add ( frenchWordOnes [ ones ] ); + } + return wl; + } + } + + /** + * Spanish Word Numerals + */ + private static String[] spanishWordOnes = { "cero", "uno", "dos", "tres", "cuatro", "cinco", "seise", "siete", "ocho", "nueve" }; + private static String[] spanishWordTeens = { "diez", "once", "doce", "trece", "catorce", "quince", "diecis\u00e9is", "diecisiete", "dieciocho", "diecinueve" }; + private static String[] spanishWordTweens = { "veinte", "veintiuno", "veintid\u00f3s", "veintitr\u00e9s", "veinticuatro", "veinticinco", "veintis\u00e9is", "veintisiete", "veintiocho", "veintinueve" }; + private static String[] spanishWordTens = { "", "diez", "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa" }; + private static String[] spanishWordHundreds = { "", "ciento", "doscientos", "trescientos", "cuatrocientos", "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos" }; + private static String[] spanishWordOthers = { "un", "cien", "mil", "mill\u00f3n", "millones" }; + private static String[] spanishWordOnesOrdMale = { "ninguno", "primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "s\u00e9ptimo", "octavo", "novento", "d\u00e9cimo" }; + private static String[] spanishWordOnesOrdFemale = { "ninguna", "primera", "segunda", "tercera", "cuarta", "quinta", "sexta", "s\u00e9ptima", "octava", "noventa", "d\u00e9cima" }; + private static class SpanishNumberAsWordFormatter implements SpecialNumberFormatter { + private int caseType = Character.UPPERCASE_LETTER; + SpanishNumberAsWordFormatter ( int caseType ) { + this.caseType = caseType; + } + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + List<String> wl = new ArrayList<String>(); + if ( number >= 1000000000000L ) { + return null; + } else { + boolean ordinal = hasFeature ( features, "ordinal" ); + if ( number == 0 ) { + wl.add ( spanishWordOnes [ 0 ] ); + } else if ( ordinal && ( number <= 10 ) ) { + boolean female = hasFeature ( features, "female" ); + if ( female ) { + wl.add ( spanishWordOnesOrdFemale [ (int) number ] ); + } else { + wl.add ( spanishWordOnesOrdMale [ (int) number ] ); + } + } else { + int ones = (int) ( number % 1000 ); + int thousands = (int) ( ( number / 1000 ) % 1000 ); + int millions = (int) ( ( number / 1000000 ) % 1000 ); + int billions = (int) ( ( number / 1000000000 ) % 1000 ); + if ( billions > 0 ) { + if ( billions > 1 ) { + wl = formatOnesInThousand ( wl, billions ); + } + wl.add ( spanishWordOthers[2] ); + wl.add ( spanishWordOthers[4] ); + } + if ( millions > 0 ) { + if ( millions == 1 ) { + wl.add ( spanishWordOthers[0] ); + } else { + wl = formatOnesInThousand ( wl, millions ); + } + if ( millions > 1 ) { + wl.add ( spanishWordOthers[4] ); + } else { + wl.add ( spanishWordOthers[3] ); + } + } + if ( thousands > 0 ) { + if ( thousands > 1 ) { + wl = formatOnesInThousand ( wl, thousands ); + } + wl.add ( spanishWordOthers[2] ); + } + if ( ones > 0 ) { + wl = formatOnesInThousand ( wl, ones ); + } + } + wl = convertWordCase ( wl, caseType ); + return CharUtilities.toUTF32 ( joinWords ( wl, " " ), 0, true ); + } + } + private List<String> formatOnesInThousand ( List<String> wl, int number ) { + assert number < 1000; + int ones = number % 10; + int tens = ( number / 10 ) % 10; + int hundreds = ( number / 100 ) % 10; + if ( hundreds > 0 ) { + if ( ( hundreds == 1 ) && ( tens == 0 ) && ( ones == 0 ) ) { + wl.add ( spanishWordOthers[1] ); + } else { + wl.add ( spanishWordHundreds [ hundreds ] ); + } + } + if ( tens > 0 ) { + if ( tens == 1 ) { + wl.add ( spanishWordTeens [ ones ] ); + } else if ( tens == 2 ) { + wl.add ( spanishWordTweens [ ones ] ); + } else { + wl.add ( spanishWordTens [ tens ] ); + if ( ones > 0 ) { + wl.add ( "y" ); + wl.add ( spanishWordOnes [ ones ] ); + } + } + } else if ( ones > 0 ) { + wl.add ( spanishWordOnes [ ones ] ); + } + return wl; + } + } + + /** + * Roman (Latin) Numerals + */ + private static int[] romanMapping = { + 100000, + 90000, + 50000, + 40000, + 10000, + 9000, + 5000, + 4000, + 1000, + 900, + 500, + 400, + 100, + 90, + 50, + 40, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + }; + private static String[] romanStandardForms = { + null, + null, + null, + null, + null, + null, + null, + null, + "m", + "cm", + "d", + "cd", + "c", + "xc", + "l", + "xl", + "x", + "ix", + null, + null, + null, + "v", + "iv", + null, + null, + "i" + }; + private static String[] romanLargeForms = { + "\u2188", + "\u2182\u2188", + "\u2187", + "\u2182\u2187", + "\u2182", + "\u2180\u2182", + "\u2181", + "\u2180\u2181", + "m", + "cm", + "d", + "cd", + "c", + "xc", + "l", + "xl", + "x", + "ix", + null, + null, + null, + "v", + "iv", + null, + null, + "i" + }; + private static String[] romanNumberForms = { + "\u2188", + "\u2182\u2188", + "\u2187", + "\u2182\u2187", + "\u2182", + "\u2180\u2182", + "\u2181", + "\u2180\u2181", + "\u216F", + "\u216D\u216F", + "\u216E", + "\u216D\u216E", + "\u216D", + "\u2169\u216D", + "\u216C", + "\u2169\u216C", + "\u2169", + "\u2168", + "\u2167", + "\u2166", + "\u2165", + "\u2164", + "\u2163", + "\u2162", + "\u2161", + "\u2160" + }; + private static class RomanNumeralsFormatter implements SpecialNumberFormatter { + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + List<Integer> sl = new ArrayList<Integer>(); + if ( number == 0 ) { + return null; + } else { + String[] forms; + int maxNumber; + if ( hasFeature ( features, "unicode-number-forms" ) ) { + forms = romanNumberForms; + maxNumber = 199999; + } else if ( hasFeature ( features, "large" ) ) { + forms = romanLargeForms; + maxNumber = 199999; + } else { + forms = romanStandardForms; + maxNumber = 4999; + } + if ( number > maxNumber ) { + return null; + } else { + while ( number > 0 ) { + for ( int i = 0, n = romanMapping.length; i < n; i++ ) { + int d = romanMapping [ i ]; + if ( ( number >= d ) && ( forms [ i ] != null ) ) { + appendScalars ( sl, CharUtilities.toUTF32 ( forms [ i ], 0, true ) ); + number = number - d; + break; + } + } + } + if ( one == (int) 'I' ) { + return toUpperCase ( sl.toArray ( new Integer [ sl.size() ] ) ); + } else if ( one == (int) 'i' ) { + return toLowerCase ( sl.toArray ( new Integer [ sl.size() ] ) ); + } else { + return null; + } + } + } + } + } + + /** + * Isopsephry (Greek) Numerals + */ + private static class IsopsephryNumeralsFormatter implements SpecialNumberFormatter { + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + return null; + } + } + + /** + * Gematria (Hebrew) Numerals + */ + private static int[] hebrewGematriaAlphabeticMap = { + // ones + 0x05D0, // ALEF + 0x05D1, // BET + 0x05D2, // GIMEL + 0x05D3, // DALET + 0x05D4, // HE + 0x05D5, // VAV + 0x05D6, // ZAYIN + 0x05D7, // HET + 0x05D8, // TET + // tens + 0x05D9, // YOD + 0x05DB, // KAF + 0x05DC, // LAMED + 0x05DE, // MEM + 0x05E0, // NUN + 0x05E1, // SAMEKH + 0x05E2, // AYIN + 0x05E4, // PE + 0x05E6, // TSADHI + // hundreds + 0x05E7, // QOF + 0x05E8, // RESH + 0x05E9, // SHIN + 0x05EA, // TAV + 0x05DA, // FINAL KAF + 0x05DD, // FINAL MEM + 0x05DF, // FINAL NUN + 0x05E3, // FINAL PE + 0x05E5, // FINAL TSADHI + }; + private class GematriaNumeralsFormatter implements SpecialNumberFormatter { + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + if ( one == 0x05D0 ) { + if ( letterValue == LETTER_VALUE_ALPHABETIC ) { + return formatNumberAsSequence ( number, one, hebrewGematriaAlphabeticMap.length, hebrewGematriaAlphabeticMap ); + } else if ( letterValue == LETTER_VALUE_TRADITIONAL ) { + if ( ( number == 0 ) || ( number > 1999 ) ) { + return null; + } else { + return formatAsGematriaNumber ( number, features, language, country ); + } + } else { + return null; + } + } else { + return null; + } + } + private Integer[] formatAsGematriaNumber ( long number, String features, String language, String country ) { + List<Integer> sl = new ArrayList<Integer>(); + assert hebrewGematriaAlphabeticMap.length == 27; + assert hebrewGematriaAlphabeticMap[0] == 0x05D0; // ALEF + assert hebrewGematriaAlphabeticMap[21] == 0x05EA; // TAV + assert number != 0; + assert number < 2000; + int[] map = hebrewGematriaAlphabeticMap; + int thousands = (int) ( ( number / 1000 ) % 10 ); + int hundreds = (int) ( ( number / 100 ) % 10 ); + int tens = (int) ( ( number / 10 ) % 10 ); + int ones = (int) ( ( number / 1 ) % 10 ); + if ( thousands > 0 ) { + sl.add ( map [ 0 + ( thousands - 1 ) ] ); + sl.add ( 0x05F3 ); + } + if ( hundreds > 0 ) { + assert hundreds < 10; + if ( hundreds < 5 ) { + sl.add ( map [ 18 + ( hundreds - 1 ) ] ); + } else if ( hundreds < 9 ) { + sl.add ( map [ 18 + ( 4 - 1 ) ] ); + sl.add ( 0x05F4 ); + sl.add ( map [ 18 + ( hundreds - 5 ) ] ); + } else if ( hundreds == 9 ) { + sl.add ( map [ 18 + ( 4 - 1 ) ] ); + sl.add ( map [ 18 + ( 4 - 1 ) ] ); + sl.add ( 0x05F4 ); + sl.add ( map [ 18 + ( hundreds - 9 ) ] ); + } + } + if ( number == 15 ) { + sl.add ( map [ 9 - 1] ); + sl.add ( 0x05F4 ); + sl.add ( map [ 6 - 1] ); + } else if ( number == 16 ) { + sl.add ( map [ 9 - 1 ] ); + sl.add ( 0x05F4 ); + sl.add ( map [ 7 - 1 ] ); + } else { + if ( tens > 0 ) { + assert tens < 10; + sl.add ( map [ 9 + ( tens - 1 ) ] ); + } + if ( ones > 0 ) { + assert ones < 10; + sl.add ( map [ 0 + ( ones - 1 ) ] ); + } + } + return sl.toArray ( new Integer [ sl.size() ] ); + } + } + + /** + * Arabic Numerals + */ + private static int[] arabicAbjadiAlphabeticMap = { + // ones + 0x0623, // ALEF WITH HAMZA ABOVE + 0x0628, // BEH + 0x062C, // JEEM + 0x062F, // DAL + 0x0647, // HEH + 0x0648, // WAW + 0x0632, // ZAIN + 0x062D, // HAH + 0x0637, // TAH + // tens + 0x0649, // ALEF MAQSURA + 0x0643, // KAF + 0x0644, // LAM + 0x0645, // MEEM + 0x0646, // NOON + 0x0633, // SEEN + 0x0639, // AIN + 0x0641, // FEH + 0x0635, // SAD + // hundreds + 0x0642, // QAF + 0x0631, // REH + 0x0634, // SHEEN + 0x062A, // TEH + 0x062B, // THEH + 0x062E, // KHAH + 0x0630, // THAL + 0x0636, // DAD + 0x0638, // ZAH + // thousands + 0x063A, // GHAIN + }; + private static int[] arabicHijaiAlphabeticMap = { + 0x0623, // ALEF WITH HAMZA ABOVE + 0x0628, // BEH + 0x062A, // TEH + 0x062B, // THEH + 0x062C, // JEEM + 0x062D, // HAH + 0x062E, // KHAH + 0x062F, // DAL + 0x0630, // THAL + 0x0631, // REH + 0x0632, // ZAIN + 0x0633, // SEEN + 0x0634, // SHEEN + 0x0635, // SAD + 0x0636, // DAD + 0x0637, // TAH + 0x0638, // ZAH + 0x0639, // AIN + 0x063A, // GHAIN + 0x0641, // FEH + 0x0642, // QAF + 0x0643, // KAF + 0x0644, // LAM + 0x0645, // MEEM + 0x0646, // NOON + 0x0647, // HEH + 0x0648, // WAW + 0x0649, // ALEF MAQSURA + }; + private class ArabicNumeralsFormatter implements SpecialNumberFormatter { + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + if ( one == 0x0627 ) { + int[] map; + if ( letterValue == LETTER_VALUE_TRADITIONAL ) { + map = arabicAbjadiAlphabeticMap; + } else if ( letterValue == LETTER_VALUE_ALPHABETIC ) { + map = arabicHijaiAlphabeticMap; + } else { + map = arabicAbjadiAlphabeticMap; + } + return formatNumberAsSequence ( number, one, map.length, map ); + } else if ( one == 0x0623 ) { + if ( ( number == 0 ) || ( number > 1999 ) ) { + return null; + } else { + return formatAsAbjadiNumber ( number, features, language, country ); + } + } else { + return null; + } + } + private Integer[] formatAsAbjadiNumber ( long number, String features, String language, String country ) { + List<Integer> sl = new ArrayList<Integer>(); + assert arabicAbjadiAlphabeticMap.length == 28; + assert arabicAbjadiAlphabeticMap[0] == 0x0623; // ALEF WITH HAMZA ABOVE + assert arabicAbjadiAlphabeticMap[27] == 0x063A; // GHAIN + assert number != 0; + assert number < 2000; + int[] map = arabicAbjadiAlphabeticMap; + int thousands = (int) ( ( number / 1000 ) % 10 ); + int hundreds = (int) ( ( number / 100 ) % 10 ); + int tens = (int) ( ( number / 10 ) % 10 ); + int ones = (int) ( ( number / 1 ) % 10 ); + if ( thousands > 0 ) { + assert thousands < 2; + sl.add ( map [ 27 + ( thousands - 1 ) ] ); + } + if ( hundreds > 0 ) { + assert thousands < 10; + sl.add ( map [ 18 + ( hundreds - 1 ) ] ); + } + if ( tens > 0 ) { + assert tens < 10; + sl.add ( map [ 9 + ( tens - 1 ) ] ); + } + if ( ones > 0 ) { + assert ones < 10; + sl.add ( map [ 0 + ( ones - 1 ) ] ); + } + return sl.toArray ( new Integer [ sl.size() ] ); + } + } + + /** + * Kana (Japanese) Numerals + */ + private static int[] hiraganaGojuonAlphabeticMap = { + 0x3042, // A + 0x3044, // I + 0x3046, // U + 0x3048, // E + 0x304A, // O + 0x304B, // KA + 0x304D, // KI + 0x304F, // KU + 0x3051, // KE + 0x3053, // KO + 0x3055, // SA + 0x3057, // SI + 0x3059, // SU + 0x305B, // SE + 0x305D, // SO + 0x305F, // TA + 0x3061, // TI + 0x3064, // TU + 0x3066, // TE + 0x3068, // TO + 0x306A, // NA + 0x306B, // NI + 0x306C, // NU + 0x306D, // NE + 0x306E, // NO + 0x306F, // HA + 0x3072, // HI + 0x3075, // HU + 0x3078, // HE + 0x307B, // HO + 0x307E, // MA + 0x307F, // MI + 0x3080, // MU + 0x3081, // ME + 0x3082, // MO + 0x3084, // YA + 0x3086, // YU + 0x3088, // YO + 0x3089, // RA + 0x308A, // RI + 0x308B, // RU + 0x308C, // RE + 0x308D, // RO + 0x308F, // WA + 0x3090, // WI + 0x3091, // WE + 0x3092, // WO + 0x3093, // N + }; + private static int[] katakanaGojuonAlphabeticMap = { + 0x30A2, // A + 0x30A4, // I + 0x30A6, // U + 0x30A8, // E + 0x30AA, // O + 0x30AB, // KA + 0x30AD, // KI + 0x30AF, // KU + 0x30B1, // KE + 0x30B3, // KO + 0x30B5, // SA + 0x30B7, // SI + 0x30B9, // SU + 0x30BB, // SE + 0x30BD, // SO + 0x30BF, // TA + 0x30C1, // TI + 0x30C4, // TU + 0x30C6, // TE + 0x30C8, // TO + 0x30CA, // NA + 0x30CB, // NI + 0x30CC, // NU + 0x30CD, // NE + 0x30CE, // NO + 0x30CF, // HA + 0x30D2, // HI + 0x30D5, // HU + 0x30D8, // HE + 0x30DB, // HO + 0x30DE, // MA + 0x30DF, // MI + 0x30E0, // MU + 0x30E1, // ME + 0x30E2, // MO + 0x30E4, // YA + 0x30E6, // YU + 0x30E8, // YO + 0x30E9, // RA + 0x30EA, // RI + 0x30EB, // RU + 0x30EC, // RE + 0x30ED, // RO + 0x30EF, // WA + 0x30F0, // WI + 0x30F1, // WE + 0x30F2, // WO + 0x30F3, // N + }; + private class KanaNumeralsFormatter implements SpecialNumberFormatter { + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + if ( ( one == 0x3042 ) && ( letterValue == LETTER_VALUE_ALPHABETIC ) ) { + return formatNumberAsSequence ( number, one, hiraganaGojuonAlphabeticMap.length, hiraganaGojuonAlphabeticMap ); + } else if ( ( one == 0x30A2 ) && ( letterValue == LETTER_VALUE_ALPHABETIC ) ) { + return formatNumberAsSequence ( number, one, katakanaGojuonAlphabeticMap.length, katakanaGojuonAlphabeticMap ); + } else { + return null; + } + } + } + + /** + * Thai Numerals + */ + private static int[] thaiAlphabeticMap = { + 0x0E01, + 0x0E02, + 0x0E03, + 0x0E04, + 0x0E05, + 0x0E06, + 0x0E07, + 0x0E08, + 0x0E09, + 0x0E0A, + 0x0E0B, + 0x0E0C, + 0x0E0D, + 0x0E0E, + 0x0E0F, + 0x0E10, + 0x0E11, + 0x0E12, + 0x0E13, + 0x0E14, + 0x0E15, + 0x0E16, + 0x0E17, + 0x0E18, + 0x0E19, + 0x0E1A, + 0x0E1B, + 0x0E1C, + 0x0E1D, + 0x0E1E, + 0x0E1F, + 0x0E20, + 0x0E21, + 0x0E22, + 0x0E23, + // 0x0E24, // RU - not used in modern sequence + 0x0E25, + // 0x0E26, // LU - not used in modern sequence + 0x0E27, + 0x0E28, + 0x0E29, + 0x0E2A, + 0x0E2B, + 0x0E2C, + 0x0E2D, + 0x0E2E, + }; + private class ThaiNumeralsFormatter implements SpecialNumberFormatter { + @Override + public Integer[] format ( long number, int one, int letterValue, String features, String language, String country ) { + if ( ( one == 0x0E01 ) && ( letterValue == LETTER_VALUE_ALPHABETIC ) ) { + return formatNumberAsSequence ( number, one, thaiAlphabeticMap.length, thaiAlphabeticMap ); + } else { + return null; + } + } + } + +}
diff --git a/src/sandbox/org/apache/fop/render/mif/MIFHandler.java b/src/sandbox/org/apache/fop/render/mif/MIFHandler.java index 0adf8bf..34eb7dc 100644 --- a/src/sandbox/org/apache/fop/render/mif/MIFHandler.java +++ b/src/sandbox/org/apache/fop/render/mif/MIFHandler.java
@@ -84,7 +84,8 @@ public MIFHandler(FOUserAgent ua, OutputStream os) { super(ua); outStream = os; - FontSetup.setup(fontInfo, null, new DefaultFontResolver(ua)); + boolean base14Kerning = false; //TODO - FIXME + FontSetup.setup(fontInfo, null, new DefaultFontResolver(ua), base14Kerning); } /** {@inheritDoc} */
diff --git a/status.xml b/status.xml index 24a7d3f..117594b 100644 --- a/status.xml +++ b/status.xml
@@ -60,6 +60,13 @@ documents. Example: the fix of marks layering will be such a case when it's done. --> <release version="FOP Trunk" date="TBD"> + <action context="Code" dev="PH" type="add" fixes-bug="51962" due-to="Mehdi Houshmand"> + Bugfix for when the last simple-page-master referenced in a page-sequence-master is not + chosen when force-page-count=odd. + </action> + <action context="Code" dev="VH" type="add" fixes-bug="51928" due-to="Mehdi Houshmand"> + Upgraded all tests to JUnit 4. + </action> <action context="Fonts" dev="PH" type="fix" fixes-bug="48696"> Bugfix for color model in IOCA IDE structure parameter for 4- and 8-bit grayscale images. Revision 4.
diff --git a/test/java/org/apache/fop/AbstractBasicTranscoderTestCase.java b/test/java/org/apache/fop/AbstractBasicTranscoderTestCase.java index 4a65b77..e249a8a 100644 --- a/test/java/org/apache/fop/AbstractBasicTranscoderTestCase.java +++ b/test/java/org/apache/fop/AbstractBasicTranscoderTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop; +import static org.junit.Assert.assertTrue; + import java.io.File; import java.io.InputStream; @@ -26,6 +28,7 @@ import org.apache.batik.transcoder.TranscoderInput; import org.apache.batik.transcoder.TranscoderOutput; import org.apache.commons.io.output.ByteArrayOutputStream; +import org.junit.Test; /** * Basic runtime test for FOP's transcoders. It is used to verify that @@ -34,13 +37,6 @@ public abstract class AbstractBasicTranscoderTestCase extends AbstractFOPTestCase { /** - * @see junit.framework.TestCase#TestCase(String) - */ - public AbstractBasicTranscoderTestCase(String name) { - super(name); - } - - /** * Creates the transcoder to test. * @return the newly instantiated transcoder */ @@ -51,6 +47,7 @@ * Without special configuration stuff. * @throws Exception if a problem occurs */ + @Test public void testGenericPDFTranscoder() throws Exception { //Create transcoder Transcoder transcoder = createTranscoder();
diff --git a/test/java/org/apache/fop/AbstractFOPTestCase.java b/test/java/org/apache/fop/AbstractFOPTestCase.java index 7d6fee9..58108a0 100644 --- a/test/java/org/apache/fop/AbstractFOPTestCase.java +++ b/test/java/org/apache/fop/AbstractFOPTestCase.java
@@ -21,25 +21,16 @@ import java.io.File; -import junit.framework.TestCase; - /** * Abstract base test class for FOP's tests. */ -public abstract class AbstractFOPTestCase extends TestCase { - - /** - * @see junit.framework.TestCase#TestCase(String) - */ - public AbstractFOPTestCase(String name) { - super(name); - } +public abstract class AbstractFOPTestCase { /** * Returns the base directory to use for the tests. * @return the base directory */ - protected File getBaseDir() { + protected static File getBaseDir() { String basedir = System.getProperty("basedir"); if (basedir != null) { return new File(basedir);
diff --git a/test/java/org/apache/fop/BasicDriverTestCase.java b/test/java/org/apache/fop/BasicDriverTestCase.java index 0ae6da0..f02debd 100644 --- a/test/java/org/apache/fop/BasicDriverTestCase.java +++ b/test/java/org/apache/fop/BasicDriverTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop; +import static org.junit.Assert.assertTrue; + import java.io.File; import javax.xml.transform.Result; @@ -34,6 +36,7 @@ import org.apache.fop.apps.FopFactory; import org.apache.fop.apps.MimeConstants; import org.apache.fop.cli.InputHandler; +import org.junit.Test; /** * Basic runtime test for the old Fop class. It is used to verify that @@ -44,16 +47,10 @@ private FopFactory fopFactory = FopFactory.newInstance(); /** - * @see junit.framework.TestCase#TestCase(String) - */ - public BasicDriverTestCase(String name) { - super(name); - } - - /** * Tests Fop with JAXP and OutputStream generating PDF. * @throws Exception if anything fails */ + @Test public void testFO2PDFWithJAXP() throws Exception { FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo"); @@ -73,6 +70,7 @@ * Tests Fop with JAXP and OutputStream generating PostScript. * @throws Exception if anything fails */ + @Test public void testFO2PSWithJAXP() throws Exception { FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo"); @@ -92,6 +90,7 @@ * Tests Fop with JAXP and OutputStream generating RTF. * @throws Exception if anything fails */ + @Test public void testFO2RTFWithJAXP() throws Exception { FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo"); @@ -111,6 +110,7 @@ * Tests Fop with XsltInputHandler and OutputStream. * @throws Exception if anything fails */ + @Test public void testFO2PDFWithXSLTInputHandler() throws Exception { FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); File xmlFile = new File(getBaseDir(), "test/xml/1.xml");
diff --git a/test/java/org/apache/fop/BasicDriverTestSuite.java b/test/java/org/apache/fop/BasicDriverTestSuite.java index 92fb07a..8330a5f 100644 --- a/test/java/org/apache/fop/BasicDriverTestSuite.java +++ b/test/java/org/apache/fop/BasicDriverTestSuite.java
@@ -19,24 +19,14 @@ package org.apache.fop; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for basic functionality of FOP's Driver API. */ +@RunWith(Suite.class) +@SuiteClasses({ BasicDriverTestCase.class }) public class BasicDriverTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for FOP's Driver API"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(BasicDriverTestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java b/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java index 44668d0..61fbdb5 100644 --- a/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java +++ b/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java
@@ -28,16 +28,7 @@ */ public class BasicPDFTranscoderTestCase extends AbstractBasicTranscoderTestCase { - /** - * @see junit.framework.TestCase#TestCase(String) - */ - public BasicPDFTranscoderTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.AbstractBasicTranscoderTestCase#createTranscoder() - */ + @Override protected Transcoder createTranscoder() { return new PDFTranscoder(); }
diff --git a/test/java/org/apache/fop/BasicPSTranscoderTestCase.java b/test/java/org/apache/fop/BasicPSTranscoderTestCase.java index 69be94b..40429a4 100644 --- a/test/java/org/apache/fop/BasicPSTranscoderTestCase.java +++ b/test/java/org/apache/fop/BasicPSTranscoderTestCase.java
@@ -28,16 +28,7 @@ */ public class BasicPSTranscoderTestCase extends AbstractBasicTranscoderTestCase { - /** - * @see junit.framework.TestCase#TestCase(String) - */ - public BasicPSTranscoderTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.AbstractBasicTranscoderTestCase#createTranscoder() - */ + @Override protected Transcoder createTranscoder() { return new PSTranscoder(); }
diff --git a/test/java/org/apache/fop/BasicTranscoderTestSuite.java b/test/java/org/apache/fop/BasicTranscoderTestSuite.java index ed70afd..a372f73 100644 --- a/test/java/org/apache/fop/BasicTranscoderTestSuite.java +++ b/test/java/org/apache/fop/BasicTranscoderTestSuite.java
@@ -19,25 +19,17 @@ package org.apache.fop; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for basic functionality of FOP's transcoders. */ +@RunWith(Suite.class) +@SuiteClasses({ + BasicPDFTranscoderTestCase.class, + BasicPSTranscoderTestCase.class +}) public class BasicTranscoderTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for FOP's transcoders"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(BasicPDFTranscoderTestCase.class)); - suite.addTest(new TestSuite(BasicPSTranscoderTestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/DigestFilterTestCase.java b/test/java/org/apache/fop/DigestFilterTestCase.java index 47fa348..5606c2b 100644 --- a/test/java/org/apache/fop/DigestFilterTestCase.java +++ b/test/java/org/apache/fop/DigestFilterTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop; +import static org.junit.Assert.assertTrue; + import java.io.IOException; import java.io.StringReader; import java.security.NoSuchAlgorithmException; @@ -26,9 +28,9 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParserFactory; -import junit.framework.TestCase; - import org.apache.fop.util.DigestFilter; +import org.junit.Before; +import org.junit.Test; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; @@ -37,12 +39,12 @@ * Test case for digesting SAX filter. * */ -public class DigestFilterTestCase extends TestCase { +public class DigestFilterTestCase { private SAXParserFactory parserFactory; - /** @see junit.framework.TestCase#setUp() */ - protected void setUp() { + @Before + public void setUp() { parserFactory = SAXParserFactory.newInstance(); parserFactory.setNamespaceAware(true); } @@ -95,6 +97,7 @@ return digestFilter.getDigestValue(); } + @Test public final void testLineFeed() throws NoSuchAlgorithmException, @@ -111,6 +114,7 @@ compareDigest(lfDigest, crlfDigest)); } + @Test public final void testAttributeOrder() throws NoSuchAlgorithmException, @@ -134,6 +138,7 @@ compareDigest(sortDigest, reverseDigest)); } + @Test public final void testNamespacePrefix() throws NoSuchAlgorithmException,
diff --git a/test/java/org/apache/fop/GenericFOPTestCase.java b/test/java/org/apache/fop/GenericFOPTestCase.java index 5b51a34..26fa296 100644 --- a/test/java/org/apache/fop/GenericFOPTestCase.java +++ b/test/java/org/apache/fop/GenericFOPTestCase.java
@@ -18,6 +18,7 @@ /* $Id$ */ package org.apache.fop; +import static org.junit.Assert.fail; import java.io.ByteArrayOutputStream; import java.io.StringReader; @@ -27,10 +28,8 @@ import javax.xml.parsers.SAXParserFactory; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - +import org.junit.Before; +import org.junit.Test; import org.xml.sax.InputSource; import org.apache.fop.apps.FOUserAgent; @@ -47,33 +46,20 @@ * PDF currently supported) and a MD5 for the result. * */ -public final class GenericFOPTestCase extends TestCase { +public final class GenericFOPTestCase { // configure fopFactory as desired private FopFactory fopFactory = FopFactory.newInstance(); - protected SAXParserFactory parserFactory; + private SAXParserFactory parserFactory; - public static Test suite() { - TestSuite suite = new TestSuite(GenericFOPTestCase.class); - suite.setName("Fop regression tests"); - return suite; - } - - /** - * Constructor for FopTest. - * @param name the name of the test suite - */ - public GenericFOPTestCase(String name) { - super(name); - } - - /** @see junit.framework.TestCase#setUp() */ - protected void setUp() throws Exception { + @Before + public void setUp() throws Exception { parserFactory = SAXParserFactory.newInstance(); parserFactory.setNamespaceAware(true); } + @org.junit.Test public void testSimple() throws Exception { final String digestIn = "17bf13298796065f7775db8707133aeb"; final String digestOut = "e2761f51152f6663911e567901596707"; @@ -119,8 +105,7 @@ FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); foUserAgent.setCreationDate(new Date(10000)); MessageDigest outDigest = MessageDigest.getInstance("MD5"); - DigestOutputStream out - = new DigestOutputStream(new ByteArrayOutputStream(), outDigest); + DigestOutputStream out = new DigestOutputStream(new ByteArrayOutputStream(), outDigest); Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); InputSource source = new InputSource(new StringReader(fo)); DigestFilter filter = new DigestFilter("MD5");
diff --git a/test/java/org/apache/fop/KnuthAlgorithmTestCase.java b/test/java/org/apache/fop/KnuthAlgorithmTestCase.java index 5a55236..1817611 100644 --- a/test/java/org/apache/fop/KnuthAlgorithmTestCase.java +++ b/test/java/org/apache/fop/KnuthAlgorithmTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop; +import static org.junit.Assert.assertEquals; + import java.util.List; import org.apache.fop.layoutmgr.BlockKnuthSequence; @@ -28,17 +30,16 @@ import org.apache.fop.layoutmgr.KnuthGlue; import org.apache.fop.layoutmgr.KnuthPenalty; import org.apache.fop.layoutmgr.KnuthSequence; - -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; /** * Tests the Knuth algorithm implementation. */ -public class KnuthAlgorithmTestCase extends TestCase { +public class KnuthAlgorithmTestCase { - /** @see junit.framework.TestCase#setUp() */ - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() { DebugHelper.registerStandardElementListObservers(); } @@ -67,6 +68,7 @@ * possibility. * @throws Exception if an error occurs */ + @Test public void test1() throws Exception { MyBreakingAlgorithm algo = new MyBreakingAlgorithm(0, 0, true, true, 0); algo.setConstantLineWidth(30000);
diff --git a/test/java/org/apache/fop/StandardTestSuite.java b/test/java/org/apache/fop/StandardTestSuite.java index a49cc7f..1dacd96 100644 --- a/test/java/org/apache/fop/StandardTestSuite.java +++ b/test/java/org/apache/fop/StandardTestSuite.java
@@ -19,8 +19,9 @@ package org.apache.fop; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; import org.apache.fop.afp.fonts.CharactersetEncoderTest; import org.apache.fop.afp.parser.MODCAParserTestCase; @@ -36,6 +37,7 @@ import org.apache.fop.render.pdf.PDFCMapTestCase; import org.apache.fop.render.pdf.PDFEncodingTestCase; import org.apache.fop.render.pdf.PDFsRGBSettingsTestCase; +import org.apache.fop.render.pdf.RenderPDFTestSuite; import org.apache.fop.render.ps.PSTestSuite; import org.apache.fop.render.rtf.RichTextFormatTestSuite; import org.apache.fop.traits.MinOptMaxTest; @@ -43,37 +45,30 @@ /** * Test suite for basic functionality of FOP. */ +@RunWith(Suite.class) +@SuiteClasses({ + BasicDriverTestSuite.class, + UtilityCodeTestSuite.class, + PDFAConformanceTestCase.class, + PDFEncodingTestCase.class, + PDFCMapTestCase.class, + PDFsRGBSettingsTestCase.class, + DejaVuLGCSerifTest.class, + RichTextFormatTestSuite.class, + ImageLoaderTestCase.class, + ImagePreloaderTestCase.class, + IFMimickingTestCase.class, + PageBoundariesTest.class, + PageScaleTest.class, + org.apache.fop.afp.AFPTestSuite.class, + GlyfTableTestCase.class, + ViewportTestSuite.class, + RenderPDFTestSuite.class, + MODCAParserTestCase.class, + CharactersetEncoderTest.class, + org.apache.fop.render.afp.AFPTestSuite.class, + PSTestSuite.class, + MinOptMaxTest.class +}) public class StandardTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite("Basic functionality test suite for FOP"); - //$JUnit-BEGIN$ - suite.addTest(BasicDriverTestSuite.suite()); - suite.addTest(UtilityCodeTestSuite.suite()); - suite.addTest(org.apache.fop.afp.AFPTestSuite.suite()); - suite.addTest(new TestSuite(PDFAConformanceTestCase.class)); - suite.addTest(new TestSuite(PDFEncodingTestCase.class)); - suite.addTest(new TestSuite(PDFCMapTestCase.class)); - suite.addTest(new TestSuite(PDFsRGBSettingsTestCase.class)); - suite.addTest(new TestSuite(DejaVuLGCSerifTest.class)); - suite.addTest(new TestSuite(MODCAParserTestCase.class)); - suite.addTest(new TestSuite(CharactersetEncoderTest.class)); - suite.addTest(org.apache.fop.render.afp.AFPTestSuite.suite()); - suite.addTest(PSTestSuite.suite()); - suite.addTest(new TestSuite(GlyfTableTestCase.class)); - suite.addTest(RichTextFormatTestSuite.suite()); - suite.addTest(new TestSuite(ImageLoaderTestCase.class)); - suite.addTest(new TestSuite(ImagePreloaderTestCase.class)); - suite.addTest(new TestSuite(IFMimickingTestCase.class)); - suite.addTest(new TestSuite(PageBoundariesTest.class)); - suite.addTest(new TestSuite(PageScaleTest.class)); - suite.addTest(new TestSuite(MinOptMaxTest.class)); - suite.addTest(ViewportTestSuite.suite()); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/URIResolutionTestCase.java b/test/java/org/apache/fop/URIResolutionTestCase.java index 0a19772..16968e1 100644 --- a/test/java/org/apache/fop/URIResolutionTestCase.java +++ b/test/java/org/apache/fop/URIResolutionTestCase.java
@@ -19,6 +19,9 @@ package org.apache.fop; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.io.File; import java.io.FileNotFoundException; import java.io.OutputStream; @@ -36,19 +39,19 @@ import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; -import org.w3c.dom.Document; - import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.ByteArrayOutputStream; -import org.apache.xpath.XPathAPI; -import org.apache.xpath.objects.XObject; - import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; import org.apache.fop.apps.FopFactory; import org.apache.fop.apps.MimeConstants; import org.apache.fop.render.xml.XMLRenderer; +import org.apache.xpath.XPathAPI; +import org.apache.xpath.objects.XObject; +import org.junit.BeforeClass; +import org.junit.Test; +import org.w3c.dom.Document; /** * Tests URI resolution facilities. @@ -61,11 +64,10 @@ private SAXTransformerFactory tfactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance(); - private File backupDir = new File(getBaseDir(), "build/test-results"); + private final static File backupDir = new File(getBaseDir(), "build/test-results"); - /** @see junit.framework.TestCase#TestCase(String) */ - public URIResolutionTestCase(String name) { - super(name); + @BeforeClass + public static void makeDirs() { backupDir.mkdirs(); } @@ -73,6 +75,7 @@ * Test custom URI resolution with a hand-written URIResolver. * @throws Exception if anything fails */ + @Test public void testFO1a() throws Exception { innerTestFO1(false); } @@ -81,6 +84,7 @@ * Test custom URI resolution with a hand-written URIResolver. * @throws Exception if anything fails */ + @Test public void testFO1b() throws Exception { innerTestFO1(true); } @@ -112,7 +116,8 @@ * Test custom URI resolution with a hand-written URIResolver. * @throws Exception if anything fails */ - public void DISABLEDtestFO2() throws Exception { + @Test + public void testFO2() throws Exception { //TODO This will only work when we can do URI resolution inside Batik! File foFile = new File(getBaseDir(), "test/xml/uri-resolution2.fo");
diff --git a/test/java/org/apache/fop/UtilityCodeTestSuite.java b/test/java/org/apache/fop/UtilityCodeTestSuite.java index ac0ea00..2a57c85 100644 --- a/test/java/org/apache/fop/UtilityCodeTestSuite.java +++ b/test/java/org/apache/fop/UtilityCodeTestSuite.java
@@ -19,8 +19,9 @@ package org.apache.fop; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; import org.apache.fop.events.BasicEventTestCase; import org.apache.fop.pdf.FileIDGeneratorTestCase; @@ -31,35 +32,28 @@ import org.apache.fop.util.BitmapImageUtilTestCase; import org.apache.fop.util.ColorUtilTestCase; import org.apache.fop.util.ElementListUtilsTestCase; +import org.apache.fop.util.NumberConverterTestCase; import org.apache.fop.util.PDFNumberTestCase; import org.apache.fop.util.XMLResourceBundleTestCase; /** * Test suite for FOP's utility classes. */ +@RunWith(Suite.class) +@SuiteClasses({ + PDFNumberTestCase.class, + PDFObjectTestCase.class, + ColorUtilTestCase.class, + BorderPropsTestCase.class, + ElementListUtilsTestCase.class, + BasicEventTestCase.class, + XMLResourceBundleTestCase.class, + URIResolutionTestCase.class, + FileIDGeneratorTestCase.class, + PDFFactoryTestCase.class, + PDFEncryptionJCETestCase.class, + BitmapImageUtilTestCase.class, + NumberConverterTestCase.class +}) public class UtilityCodeTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Test suite for FOP's utility classes"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(PDFNumberTestCase.class)); - suite.addTest(new TestSuite(PDFObjectTestCase.class)); - suite.addTest(FileIDGeneratorTestCase.suite()); - suite.addTest(new TestSuite(PDFFactoryTestCase.class)); - suite.addTest(new TestSuite(ColorUtilTestCase.class)); - suite.addTest(new TestSuite(BorderPropsTestCase.class)); - suite.addTest(new TestSuite(ElementListUtilsTestCase.class)); - suite.addTest(new TestSuite(BasicEventTestCase.class)); - suite.addTest(new TestSuite(XMLResourceBundleTestCase.class)); - suite.addTest(new TestSuite(URIResolutionTestCase.class)); - suite.addTest(new TestSuite(BitmapImageUtilTestCase.class)); - suite.addTest(new TestSuite(PDFEncryptionJCETestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/afp/AFPResourceUtilTestCase.java b/test/java/org/apache/fop/afp/AFPResourceUtilTestCase.java index da3e023..6ab7f47 100644 --- a/test/java/org/apache/fop/afp/AFPResourceUtilTestCase.java +++ b/test/java/org/apache/fop/afp/AFPResourceUtilTestCase.java
@@ -19,20 +19,20 @@ package org.apache.fop.afp; +import static org.junit.Assert.assertTrue; + import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.Arrays; -import junit.framework.TestCase; - import org.apache.commons.io.IOUtils; - import org.apache.fop.afp.util.AFPResourceUtil; +import org.junit.Test; /** * Tests the {@link AFPResourceUtil} class. */ -public class AFPResourceUtilTestCase extends TestCase { +public class AFPResourceUtilTestCase { private static final String RESOURCE_FILENAME = "expected_resource.afp"; @@ -44,6 +44,7 @@ * Tests copyResourceFile() * @throws Exception - */ + @Test public void testCopyResourceFile() throws Exception { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); @@ -74,6 +75,7 @@ * Tests copyNamedResource() * @throws Exception - */ + @Test public void testCopyNamedResource() throws Exception { final ByteArrayOutputStream baos = new ByteArrayOutputStream();
diff --git a/test/java/org/apache/fop/afp/AFPTestSuite.java b/test/java/org/apache/fop/afp/AFPTestSuite.java index cb57a92..8fa3e81 100644 --- a/test/java/org/apache/fop/afp/AFPTestSuite.java +++ b/test/java/org/apache/fop/afp/AFPTestSuite.java
@@ -19,27 +19,18 @@ package org.apache.fop.afp; -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.fop.afp.modca.AbstractStructuredObjectTestCase; -import org.apache.fop.afp.modca.AbstractTripletStructuredObjectTestCase; import org.apache.fop.afp.modca.IncludeObjectTestCase; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for FOP's AFP classes. */ +@RunWith(Suite.class) +@SuiteClasses({ + IncludeObjectTestCase.class, + AFPResourceUtilTestCase.class +}) public class AFPTestSuite { - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite("Test suite for FOP's AFP classes"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(IncludeObjectTestCase.class)); - suite.addTest(new TestSuite(AFPResourceUtilTestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTest.java b/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTest.java index 5999a04..3b5c945 100644 --- a/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTest.java +++ b/test/java/org/apache/fop/afp/fonts/CharactersetEncoderTest.java
@@ -19,19 +19,25 @@ package org.apache.fop.afp.fonts; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.CharacterCodingException; -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; /** * Test {@link CharactersetEncoder} */ -public class CharactersetEncoderTest extends TestCase { +public class CharactersetEncoderTest { private CharactersetEncoder singlebyteEncoder; private CharactersetEncoder doublebyteEncoder; + @Before public void setUp() { singlebyteEncoder = CharactersetEncoder.newInstance("cp500", false); doublebyteEncoder = CharactersetEncoder.newInstance("cp937", true); @@ -71,6 +77,7 @@ /** * Tests canEncode() - tests that canEncode() responds properly to various input characters. */ + @Test public void testCanEncode() { // Both SBCS and DBCS should support Latin characters for (char c = '!'; c < '~'; c++) { @@ -86,6 +93,7 @@ assertFalse(doublebyteEncoder.canEncode('\u00BB')); } + @Test public void testEncode() throws CharacterCodingException, IOException { CharactersetEncoder.EncodedChars encChars;// = doublebyteEncoder.encode(testCJKText); ByteArrayOutputStream bOut = new ByteArrayOutputStream();
diff --git a/test/java/org/apache/fop/afp/modca/AbstractAFPObjectTestCase.java b/test/java/org/apache/fop/afp/modca/AbstractAFPObjectTestCase.java index 815939d..b987a13 100644 --- a/test/java/org/apache/fop/afp/modca/AbstractAFPObjectTestCase.java +++ b/test/java/org/apache/fop/afp/modca/AbstractAFPObjectTestCase.java
@@ -19,6 +19,10 @@ package org.apache.fop.afp.modca; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -26,15 +30,13 @@ import java.util.Arrays; import java.util.List; -import junit.framework.TestCase; - import org.apache.fop.afp.Streamable; +import org.junit.Test; /** * Tests the {@link AbstractAFPObject} class. */ -public abstract class AbstractAFPObjectTestCase<S extends AbstractAFPObject> - extends TestCase { +public abstract class AbstractAFPObjectTestCase<S extends AbstractAFPObject> { private S sut; @@ -61,7 +63,7 @@ 0x00 // Reserved }; - + @Test public void testCopySFStatic() { byte[] actual = new byte[9]; Arrays.fill(actual, (byte)-1); @@ -85,6 +87,7 @@ assertTrue(Arrays.equals(actual, expected2)); } + @Test public void testCopySF() { byte[] expected = new byte[9]; S.copySF(expected, (byte) 0xD3, (byte)0, (byte)0); @@ -112,6 +115,7 @@ /** * */ + @Test public void testwriteObjects() { final byte[][] expected = {{(byte)0, (byte)1}, {(byte)2, (byte)3}, {(byte)4, (byte)5}}; @@ -144,6 +148,7 @@ /** * */ + @Test public void testTruncate() { String expected = "abc"; assertTrue(AbstractAFPObject.truncate(expected, 4) == expected); @@ -161,6 +166,7 @@ /** * */ + @Test public void testWriteChunksToStream() throws IOException { final byte[] data = new byte[256]; int counter = 0;
diff --git a/test/java/org/apache/fop/afp/modca/AbstractNamedAFPObjectTestCase.java b/test/java/org/apache/fop/afp/modca/AbstractNamedAFPObjectTestCase.java index 975c269..4b03b87 100644 --- a/test/java/org/apache/fop/afp/modca/AbstractNamedAFPObjectTestCase.java +++ b/test/java/org/apache/fop/afp/modca/AbstractNamedAFPObjectTestCase.java
@@ -19,14 +19,18 @@ package org.apache.fop.afp.modca; +import static org.junit.Assert.assertTrue; + import java.util.Arrays; +import org.junit.Test; + /** * Tests the {@linkplain AbstractAFPObject} class. */ public abstract class AbstractNamedAFPObjectTestCase<S extends AbstractNamedAFPObject> extends AbstractAFPObjectTestCase<S> { - + @Test public void testCopySF() { final S sut = getSut();
diff --git a/test/java/org/apache/fop/afp/modca/AbstractTripletStructuredObjectTestCase.java b/test/java/org/apache/fop/afp/modca/AbstractTripletStructuredObjectTestCase.java index ebb0f42..f43eb06 100644 --- a/test/java/org/apache/fop/afp/modca/AbstractTripletStructuredObjectTestCase.java +++ b/test/java/org/apache/fop/afp/modca/AbstractTripletStructuredObjectTestCase.java
@@ -19,6 +19,10 @@ package org.apache.fop.afp.modca; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -31,6 +35,7 @@ import org.apache.fop.afp.modca.triplets.CommentTriplet; import org.apache.fop.afp.modca.triplets.ObjectAreaSizeTriplet; import org.apache.fop.afp.modca.triplets.Triplet; +import org.junit.Before; /** * Test {@link AbstractTripletStructuredObject} @@ -55,10 +60,8 @@ private AbstractTripletStructuredObject emptyStructuredObject = new AbstractTripletStructuredObject() { }; - @Override + @Before public void setUp() throws Exception { - super.setUp(); - AbstractTripletStructuredObject sut = getSut(); for (AbstractTriplet triplet : TRIPLETS) {
diff --git a/test/java/org/apache/fop/afp/modca/IncludeObjectTestCase.java b/test/java/org/apache/fop/afp/modca/IncludeObjectTestCase.java index 5e28f00..32bad52 100644 --- a/test/java/org/apache/fop/afp/modca/IncludeObjectTestCase.java +++ b/test/java/org/apache/fop/afp/modca/IncludeObjectTestCase.java
@@ -19,27 +19,31 @@ package org.apache.fop.afp.modca; +import static org.junit.Assert.assertTrue; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Arrays; import org.apache.fop.afp.util.BinaryUtils; +import org.junit.Before; +import org.junit.Test; /** * Test {@link IncludeObject} */ public class IncludeObjectTestCase extends AbstractNamedAFPObjectTestCase<IncludeObject> { - @Override + @Before public void setUp() throws Exception { setSut(new IncludeObject("8__chars")); - super.setUp(); } /** * Test writeToStream() * @throws IOException - */ + @Test public void testWriteToStream() throws IOException { final IncludeObject sut = getSut(); @@ -53,6 +57,7 @@ * handed with a 180 x-axis * @throws IOException - */ + @Test public void testWriteToStreamForOrientation() throws IOException { final IncludeObject sut = getSut();
diff --git a/test/java/org/apache/fop/afp/parser/MODCAParserTestCase.java b/test/java/org/apache/fop/afp/parser/MODCAParserTestCase.java index e079820..c80ef08 100644 --- a/test/java/org/apache/fop/afp/parser/MODCAParserTestCase.java +++ b/test/java/org/apache/fop/afp/parser/MODCAParserTestCase.java
@@ -19,18 +19,23 @@ package org.apache.fop.afp.parser; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.EOFException; import java.io.InputStream; import java.util.Arrays; -import junit.framework.TestCase; +import org.junit.Test; /** * MODCAParser and MODCAParser.UnparsedStructuredField Unit tests */ -public class MODCAParserTestCase extends TestCase { +public class MODCAParserTestCase { /** The carriage control character (0x5A) used to indicate the start of a structured field. */ public static final byte CARRIAGE_CONTROL_CHAR = (byte)0x5A; @@ -47,6 +52,7 @@ * * @throws Exception * */ + @Test public void testReadNextStructuredField1() throws Exception { // carriage control (0x5A) delimits structured fields, @@ -87,6 +93,7 @@ * * @throws Exception * */ + @Test public void testReadNextStructuredField2() throws Exception { // no extension data
diff --git a/test/java/org/apache/fop/area/BlockViewportTestCase.java b/test/java/org/apache/fop/area/BlockViewportTestCase.java index a2a8973..8cca4b2 100644 --- a/test/java/org/apache/fop/area/BlockViewportTestCase.java +++ b/test/java/org/apache/fop/area/BlockViewportTestCase.java
@@ -19,12 +19,14 @@ package org.apache.fop.area; +import org.junit.Test; /** * Tests the {@linkplain BlockViewport} class. */ public class BlockViewportTestCase extends ViewportTestCase { + @Test public void testNonClip() throws Exception { BlockViewport bv = new BlockViewport(); bv.setIPD(100); @@ -32,6 +34,7 @@ checkNonClip(bv); } + @Test public void testClip() throws Exception { BlockViewport bv = new BlockViewport(); int ipd = 100;
diff --git a/test/java/org/apache/fop/area/RegionViewportTestCase.java b/test/java/org/apache/fop/area/RegionViewportTestCase.java index f55d08b..e6cd8fe 100644 --- a/test/java/org/apache/fop/area/RegionViewportTestCase.java +++ b/test/java/org/apache/fop/area/RegionViewportTestCase.java
@@ -22,6 +22,8 @@ import java.awt.Rectangle; import java.awt.geom.Rectangle2D; +import org.junit.Test; + /** * Tests the {@linkplain RegionViewport} class. */ @@ -35,11 +37,13 @@ return viewport; } + @Test public void testNonClip() throws Exception { RegionViewport viewport = createRegionViewport(10, 10, 100, 20); checkNonClip(viewport); } + @Test public void testClip() throws Exception { int ipd = 150; int bpd = 20;
diff --git a/test/java/org/apache/fop/area/ViewportTestCase.java b/test/java/org/apache/fop/area/ViewportTestCase.java index 335ca2f..d09b327 100644 --- a/test/java/org/apache/fop/area/ViewportTestCase.java +++ b/test/java/org/apache/fop/area/ViewportTestCase.java
@@ -19,14 +19,17 @@ package org.apache.fop.area; -import java.awt.Rectangle; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; -import junit.framework.TestCase; +import java.awt.Rectangle; /** * Tests implementations of the {@linkplain Viewport} interface. */ -public abstract class ViewportTestCase extends TestCase { +public abstract class ViewportTestCase { protected void checkNonClip(Viewport v) throws Exception { assertFalse(v.hasClip());
diff --git a/test/java/org/apache/fop/area/ViewportTestSuite.java b/test/java/org/apache/fop/area/ViewportTestSuite.java index babbe89..065e07b 100644 --- a/test/java/org/apache/fop/area/ViewportTestSuite.java +++ b/test/java/org/apache/fop/area/ViewportTestSuite.java
@@ -19,29 +19,19 @@ package org.apache.fop.area; -import junit.framework.Test; -import junit.framework.TestSuite; - import org.apache.fop.area.inline.InlineViewportTestCase; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * A suite of all the tests relating to the {@linkplain Viewport} interface. */ +@RunWith(Suite.class) +@SuiteClasses({ + RegionViewportTestCase.class, + BlockViewportTestCase.class, + InlineViewportTestCase.class +}) public final class ViewportTestSuite { - - private ViewportTestSuite() { } - - /** - * Returns the suite of {@linkplain Viewport} implementation tests. - * - * @return the tests - */ - public static Test suite() { - TestSuite suite = new TestSuite("Tests for viewport-areas"); - suite.addTestSuite(RegionViewportTestCase.class); - suite.addTestSuite(BlockViewportTestCase.class); - suite.addTestSuite(InlineViewportTestCase.class); - return suite; - } - }
diff --git a/test/java/org/apache/fop/area/inline/InlineViewportTestCase.java b/test/java/org/apache/fop/area/inline/InlineViewportTestCase.java index 8111582..d6d6c39 100644 --- a/test/java/org/apache/fop/area/inline/InlineViewportTestCase.java +++ b/test/java/org/apache/fop/area/inline/InlineViewportTestCase.java
@@ -20,12 +20,14 @@ package org.apache.fop.area.inline; import org.apache.fop.area.ViewportTestCase; +import org.junit.Test; /** * Tests the {@linkplain InlineViewport} class. */ public class InlineViewportTestCase extends ViewportTestCase { + @Test public void testNonClip() throws Exception { InlineViewport v = new InlineViewport(null); v.setIPD(50); @@ -33,6 +35,7 @@ checkNonClip(v); } + @Test public void testClip() throws Exception { InlineViewport v = new InlineViewport(null); int ipd = 50;
diff --git a/test/java/org/apache/fop/complexscripts/ComplexScriptsTestSuite.java b/test/java/org/apache/fop/complexscripts/ComplexScriptsTestSuite.java index 72bdd07..963eaff 100644 --- a/test/java/org/apache/fop/complexscripts/ComplexScriptsTestSuite.java +++ b/test/java/org/apache/fop/complexscripts/ComplexScriptsTestSuite.java
@@ -19,31 +19,22 @@ package org.apache.fop.complexscripts; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + import org.apache.fop.complexscripts.bidi.BidiTestSuite; import org.apache.fop.complexscripts.fonts.FontsTestSuite; import org.apache.fop.complexscripts.scripts.ScriptsTestSuite; -import junit.framework.Test; -import junit.framework.TestSuite; - /** * Test suite for complex scripts functionality. */ +@RunWith(Suite.class) +@SuiteClasses({ + BidiTestSuite.class, + FontsTestSuite.class, + ScriptsTestSuite.class +}) public class ComplexScriptsTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Test suite for complex scripts functionality"); - //$JUnit-BEGIN$ - suite.addTest(BidiTestSuite.suite()); - suite.addTest(FontsTestSuite.suite()); - suite.addTest(ScriptsTestSuite.suite()); - //$JUnit-END$ - return suite; - } - }
diff --git a/test/java/org/apache/fop/complexscripts/arabic/ArabicScriptTestSuite.java b/test/java/org/apache/fop/complexscripts/arabic/ArabicScriptTestSuite.java deleted file mode 100644 index 72ba083..0000000 --- a/test/java/org/apache/fop/complexscripts/arabic/ArabicScriptTestSuite.java +++ /dev/null
@@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -/* $Id$ */ - -package org.apache.fop.complexscripts.arabic; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * Test suite for functionality related to the arabic script. - */ -public class ArabicScriptTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for the arabic script"); - //$JUnit-BEGIN$ - //$JUnit-END$ - return suite; - } - -}
diff --git a/test/java/org/apache/fop/complexscripts/arabic/ArabicTestCase.java b/test/java/org/apache/fop/complexscripts/arabic/ArabicTestCase.java new file mode 100644 index 0000000..5fb6b24 --- /dev/null +++ b/test/java/org/apache/fop/complexscripts/arabic/ArabicTestCase.java
@@ -0,0 +1,195 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.complexscripts.arabic; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FilenameFilter; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.io.ObjectInputStream; +import java.nio.IntBuffer; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; + +import org.apache.fop.complexscripts.util.TTXFile; +import org.apache.fop.fonts.GlyphPositioningTable; +import org.apache.fop.fonts.GlyphSequence; +import org.apache.fop.fonts.GlyphSubstitutionTable; + +import org.junit.BeforeClass; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +/** + * Tests for functionality related to the arabic script. + */ +public class ArabicTestCase implements ArabicTestConstants { + + @Test + public void testArabicWordForms() { + for ( String sfn : srcFiles ) { + try { + processWordForms ( new File ( datFilesDir ) ); + } catch ( Exception e ) { + fail ( e.getMessage() ); + } + } + } + + private void processWordForms ( File dfd ) { + String[] files = listWordFormFiles ( dfd ); + for ( String fn : files ) { + File dff = new File ( dfd, fn ); + processWordForms ( dff.getAbsolutePath() ); + } + } + + private String[] listWordFormFiles ( File dfd ) { + return dfd.list ( new FilenameFilter() { + public boolean accept ( File f, String name ) { + return hasPrefixFrom ( name, srcFiles ) && hasExtension ( name, WF_FILE_DAT_EXT ); + } + private boolean hasPrefixFrom ( String name, String[] prefixes ) { + for ( String p : prefixes ) { + if ( name.startsWith ( p ) ) { + return true; + } + } + return false; + } + private boolean hasExtension ( String name, String extension ) { + return name.endsWith ( "." + extension ); + } + } ); + } + + private void processWordForms ( String dpn ) { + FileInputStream fis = null; + try { + fis = new FileInputStream ( dpn ); + if ( fis != null ) { + ObjectInputStream ois = new ObjectInputStream ( fis ); + List<Object[]> data = (List<Object[]>) ois.readObject(); + if ( data != null ) { + processWordForms ( data ); + } + ois.close(); + } + } catch ( FileNotFoundException e ) { + throw new RuntimeException ( e.getMessage(), e ); + } catch ( IOException e ) { + throw new RuntimeException ( e.getMessage(), e ); + } catch ( Exception e ) { + throw new RuntimeException ( e.getMessage(), e ); + } finally { + if ( fis != null ) { + try { fis.close(); } catch ( Exception e ) {} + } + } + } + + private void processWordForms ( List<Object[]> data ) { + assert data != null; + assert data.size() > 0; + String script = null; + String language = null; + String tfn = null; + TTXFile tf = null; + GlyphSubstitutionTable gsub = null; + GlyphPositioningTable gpos = null; + int[] widths = null; + for ( Object[] d : data ) { + if ( script == null ) { + assert d.length >= 4; + script = (String) d[0]; + language = (String) d[1]; + tfn = (String) d[3]; + tf = TTXFile.getFromCache ( ttxFontsDir + File.separator + tfn ); + assertTrue ( tf != null ); + gsub = tf.getGSUB(); + assertTrue ( gsub != null ); + gpos = tf.getGPOS(); + assertTrue ( gpos != null ); + widths = tf.getWidths(); + assertTrue ( widths != null ); + } else { + assert tf != null; + assert gsub != null; + assert gpos != null; + assert tfn != null; + assert d.length >= 4; + String wf = (String) d[0]; + int[] iga = (int[]) d[1]; + int[] oga = (int[]) d[2]; + int[][] paa = (int[][]) d[3]; + GlyphSequence tigs = tf.mapCharsToGlyphs ( wf ); + assertSameGlyphs ( iga, getGlyphs ( tigs ), "input glyphs", wf, tfn ); + GlyphSequence togs = gsub.substitute ( tigs, script, language ); + assertSameGlyphs ( oga, getGlyphs ( togs ), "output glyphs", wf, tfn ); + int[][] tpaa = new int [ togs.getGlyphCount() ] [ 4 ]; + if ( gpos.position ( togs, script, language, 1000, widths, tpaa ) ) { + assertSameAdjustments ( paa, tpaa, wf, tfn ); + } else if ( paa != null ) { + assertEquals ( "unequal adjustment count, word form(" + wf + "), font (" + tfn + ")", paa.length, 0 ); + } + } + } + } + + private void assertSameGlyphs ( int[] expected, int[] actual, String label, String wf, String tfn ) { + assertEquals ( label + ": unequal glyph count, word form(" + wf + "), font (" + tfn + ")", expected.length, actual.length ); + for ( int i = 0, n = expected.length; i < n; i++ ) { + int e = expected[i]; + int a = actual[i]; + assertEquals ( label + ": unequal glyphs[" + i + "], word form(" + wf + "), font (" + tfn + ")", e, a ); + } + } + + private void assertSameAdjustments ( int[][] expected, int[][] actual, String wf, String tfn ) { + assertEquals ( "unequal adjustment count, word form(" + wf + "), font (" + tfn + ")", expected.length, actual.length ); + for ( int i = 0, n = expected.length; i < n; i++ ) { + int[] ea = expected[i]; + int[] aa = actual[i]; + assertEquals ( "bad adjustments length, word form(" + wf + "), font (" + tfn + ")", ea.length, aa.length ); + for ( int k = 0; k < 4; k++ ) { + int e = ea[k]; + int a = aa[k]; + assertEquals ( "unequal adjustment[" + i + "][" + k + "], word form(" + wf + "), font (" + tfn + ")", e, a ); + } + } + } + + private static int[] getGlyphs ( GlyphSequence gs ) { + IntBuffer gb = gs.getGlyphs(); + int[] ga = new int [ gb.limit() ]; + gb.rewind(); + gb.get ( ga ); + return ga; + } + +}
diff --git a/test/java/org/apache/fop/complexscripts/arabic/ArabicTestConstants.java b/test/java/org/apache/fop/complexscripts/arabic/ArabicTestConstants.java new file mode 100644 index 0000000..87054a0 --- /dev/null +++ b/test/java/org/apache/fop/complexscripts/arabic/ArabicTestConstants.java
@@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.complexscripts.arabic; + +/** + * Constants for test functionality related to the arabic script. + */ +public interface ArabicTestConstants { + + final String WF_FILE_SCRIPT = "arab"; + final String WF_FILE_LANGUAGE = "dflt"; + + String srcFilesDir = "test/resources/complexscripts/arab/data"; + String datFilesDir = "test/resources/complexscripts/arab/data"; + + String[] srcFiles = { + "arab-001", // unpointed word forms + }; + + final String WF_FILE_SRC_EXT = "txt"; + final String WF_FILE_DAT_EXT = "ser"; + + String ttxFontsDir = "test/resources/complexscripts/arab/ttx"; + + String[] ttxFonts = { + "arab-001.ttx", // simplified arabic + "arab-002.ttx", // traditional arabic + "arab-003.ttx", // lateef + "arab-004.ttx", // scheherazade + }; + +}
diff --git a/test/java/org/apache/fop/complexscripts/arabic/GenerateArabicTestData.java b/test/java/org/apache/fop/complexscripts/arabic/GenerateArabicTestData.java new file mode 100644 index 0000000..63c3b9e --- /dev/null +++ b/test/java/org/apache/fop/complexscripts/arabic/GenerateArabicTestData.java
@@ -0,0 +1,179 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.complexscripts.arabic; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.io.ObjectOutputStream; +import java.nio.IntBuffer; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; + +import org.apache.fop.complexscripts.util.TTXFile; +import org.apache.fop.fonts.GlyphPositioningTable; +import org.apache.fop.fonts.GlyphSequence; +import org.apache.fop.fonts.GlyphSubstitutionTable; + +/** + * Tests for functionality related to the arabic script. + */ +public class GenerateArabicTestData implements ArabicTestConstants { + + public static void main ( String[] args ) { + boolean compile = false; + boolean help = false; + for ( String a : args ) { + if ( a.equals("-c") ) { + compile = true; + } + if ( a.equals("-?") ) { + help = true; + } + } + if ( help ) { + help(); + } else if ( compile ) { + compile(); + } + } + + private static void help() { + StringBuffer sb = new StringBuffer(); + sb.append ( "org.apache.fop.complexscripts.arabic.ArabicTestCase" ); + sb.append ( " [-compile]" ); + sb.append ( " [-?]" ); + System.out.println ( sb.toString() ); + } + + private static void compile() { + for ( String sfn : srcFiles ) { + try { + String spn = srcFilesDir + File.separator + sfn + "." + WF_FILE_SRC_EXT; + compile ( WF_FILE_SCRIPT, WF_FILE_LANGUAGE, spn ); + } catch ( Exception e ) { + System.err.println ( e.getMessage() ); + } + } + } + + private static void compile ( String script, String language, String spn ) { + int fno = 0; + for ( String tfn : ttxFonts ) { + TTXFile tf = TTXFile.getFromCache ( ttxFontsDir + File.separator + tfn ); + assert tf != null; + List data = compile ( script, language, spn, tfn, tf ); + output ( makeDataPathName ( spn, fno++ ), data ); + } + } + + private static List compile ( String script, String language, String spn, String tfn, TTXFile tf ) { + List<Object[]> data = new ArrayList<Object[]>(); + data.add ( new Object[] { script, language, spn, tfn } ); + GlyphSubstitutionTable gsub = tf.getGSUB(); + GlyphPositioningTable gpos = tf.getGPOS(); + int[] widths = tf.getWidths(); + if ( ( gsub != null ) && ( gpos != null ) ) { + FileInputStream fis = null; + try { + fis = new FileInputStream ( spn ); + if ( fis != null ) { + LineNumberReader lr = new LineNumberReader ( new InputStreamReader ( fis, Charset.forName ( "UTF-8" ) ) ); + String wf; + while ( ( wf = lr.readLine() ) != null ) { + GlyphSequence igs = tf.mapCharsToGlyphs ( wf ); + GlyphSequence ogs = gsub.substitute ( igs, script, language ); + int[][] paa = new int [ ogs.getGlyphCount() ] [ 4 ]; + if ( ! gpos.position ( ogs, script, language, 1000, widths, paa ) ) { + paa = null; + } + data.add ( new Object[] { wf, getGlyphs ( igs ), getGlyphs ( ogs ), paa } ); + } + lr.close(); + } + } catch ( FileNotFoundException e ) { + throw new RuntimeException ( e.getMessage(), e ); + } catch ( IOException e ) { + throw new RuntimeException ( e.getMessage(), e ); + } catch ( Exception e ) { + throw new RuntimeException ( e.getMessage(), e ); + } finally { + if ( fis != null ) { + try { fis.close(); } catch ( Exception e ) {} + } + } + } else { + assert gsub != null; + assert gpos != null; + } + System.err.println ( "compiled " + ( data.size() - 1 ) + " word forms using font " + tfn ); + return data; + } + + private static int[] getGlyphs ( GlyphSequence gs ) { + IntBuffer gb = gs.getGlyphs(); + int[] ga = new int [ gb.limit() ]; + gb.rewind(); + gb.get ( ga ); + return ga; + } + + private static String makeDataPathName ( String spn, int fno ) { + File f = new File ( spn ); + return datFilesDir + File.separator + stripExtension ( f.getName() ) + "-f" + fno + "." + WF_FILE_DAT_EXT; + } + + private static String stripExtension ( String s ) { + int i = s.lastIndexOf ( '.' ); + if ( i >= 0 ) { + return s.substring ( 0, i ); + } else { + return s; + } + } + + private static void output ( String dpn, List<Object[]> data ) { + FileOutputStream fos = null; + try { + fos = new FileOutputStream ( dpn ); + if ( fos != null ) { + ObjectOutputStream oos = new ObjectOutputStream ( fos ); + oos.writeObject ( data ); + oos.close(); + } + } catch ( FileNotFoundException e ) { + throw new RuntimeException ( e.getMessage(), e ); + } catch ( IOException e ) { + throw new RuntimeException ( e.getMessage(), e ); + } catch ( Exception e ) { + throw new RuntimeException ( e.getMessage(), e ); + } finally { + if ( fos != null ) { + try { fos.close(); } catch ( Exception e ) {} + } + } + } + +}
diff --git a/test/java/org/apache/fop/complexscripts/bidi/BidiAlgorithmTestCase.java b/test/java/org/apache/fop/complexscripts/bidi/BidiAlgorithmTestCase.java index e7f13b1..67de950 100644 --- a/test/java/org/apache/fop/complexscripts/bidi/BidiAlgorithmTestCase.java +++ b/test/java/org/apache/fop/complexscripts/bidi/BidiAlgorithmTestCase.java
@@ -19,8 +19,6 @@ package org.apache.fop.complexscripts.bidi; -import junit.framework.TestCase; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -28,11 +26,16 @@ import org.apache.fop.text.bidi.BidiClassUtils; import org.apache.fop.util.BidiConstants; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + /** * <p>Test case for Unicode Bidi Algorithm.</p> * @author Glenn Adams */ -public class BidiAlgorithmTestCase extends TestCase { +public class BidiAlgorithmTestCase { /** * logging instance @@ -71,6 +74,7 @@ private int excludedSequences; private int passedSequences; + @Test public void testBidiAlgorithm() throws Exception { String ldPfx = BidiTestData.LD_PFX; int ldCount = BidiTestData.LD_CNT;
diff --git a/test/java/org/apache/fop/complexscripts/bidi/BidiClassTestCase.java b/test/java/org/apache/fop/complexscripts/bidi/BidiClassTestCase.java index 879135d..979182c 100644 --- a/test/java/org/apache/fop/complexscripts/bidi/BidiClassTestCase.java +++ b/test/java/org/apache/fop/complexscripts/bidi/BidiClassTestCase.java
@@ -19,13 +19,17 @@ package org.apache.fop.complexscripts.bidi; -import junit.framework.TestCase; - import org.apache.fop.text.bidi.BidiClassUtils; import org.apache.fop.util.CharUtilities; -public class BidiClassTestCase extends TestCase { +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +public class BidiClassTestCase { + + @Test public void testBidiClasses() throws Exception { String tdPfx = BidiTestData.TD_PFX; int tdCount = BidiTestData.TD_CNT;
diff --git a/test/java/org/apache/fop/complexscripts/bidi/BidiTestSuite.java b/test/java/org/apache/fop/complexscripts/bidi/BidiTestSuite.java index b9f8e6f..7a6a095 100644 --- a/test/java/org/apache/fop/complexscripts/bidi/BidiTestSuite.java +++ b/test/java/org/apache/fop/complexscripts/bidi/BidiTestSuite.java
@@ -19,26 +19,17 @@ package org.apache.fop.complexscripts.bidi; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for bidirectional functionality. */ +@RunWith(Suite.class) +@SuiteClasses({ + BidiClassTestCase.class, + BidiAlgorithmTestCase.class +}) public class BidiTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for bidrectional functionality"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(BidiClassTestCase.class)); - suite.addTest(new TestSuite(BidiAlgorithmTestCase.class)); - //$JUnit-END$ - return suite; - } - }
diff --git a/test/java/org/apache/fop/complexscripts/fonts/FontsTestSuite.java b/test/java/org/apache/fop/complexscripts/fonts/FontsTestSuite.java index 33c83c1..5d0f3ac 100644 --- a/test/java/org/apache/fop/complexscripts/fonts/FontsTestSuite.java +++ b/test/java/org/apache/fop/complexscripts/fonts/FontsTestSuite.java
@@ -19,27 +19,24 @@ package org.apache.fop.complexscripts.fonts; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; +import org.apache.fop.complexscripts.gdef.GDEFTestCase; +import org.apache.fop.complexscripts.gpos.GPOSTestCase; +import org.apache.fop.complexscripts.gsub.GSUBTestCase; import org.apache.fop.complexscripts.util.TTXFileTestCase; /** * Test suite for fonts functionality related to complex scripts. */ +@RunWith(Suite.class) +@SuiteClasses({ + TTXFileTestCase.class, + GDEFTestCase.class, + GSUBTestCase.class, + GPOSTestCase.class +}) public class FontsTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for complex scripts fonts related functionality"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(TTXFileTestCase.class)); - //$JUnit-END$ - return suite; - } - }
diff --git a/test/java/org/apache/fop/complexscripts/gdef/GDEFTestCase.java b/test/java/org/apache/fop/complexscripts/gdef/GDEFTestCase.java new file mode 100644 index 0000000..9089d85 --- /dev/null +++ b/test/java/org/apache/fop/complexscripts/gdef/GDEFTestCase.java
@@ -0,0 +1,3177 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.complexscripts.gdef; + +import java.io.File; + +import org.apache.fop.complexscripts.util.TTXFile; +import org.apache.fop.fonts.GlyphContextTester; +import org.apache.fop.fonts.GlyphSequence; +import org.apache.fop.fonts.GlyphSubtable; +import org.apache.fop.fonts.GlyphDefinitionSubtable; +import org.apache.fop.fonts.GlyphDefinitionTable; +import org.apache.fop.fonts.GlyphTable.LookupSpec; +import org.apache.fop.fonts.GlyphTable.LookupTable; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class GDEFTestCase { + + private static String ttxFilesRoot = "test/resources/complexscripts"; + + private static String[][] ttxFonts = { + { "f0", "arab/ttx/arab-001.ttx" }, // simplified arabic + { "f1", "arab/ttx/arab-002.ttx" }, // traditional arabic + { "f2", "arab/ttx/arab-003.ttx" }, // lateef + { "f3", "arab/ttx/arab-004.ttx" }, // scheherazade + }; + + private static Object[][] ltGlyphClass = { + { GlyphDefinitionTable.GDEF_LOOKUP_TYPE_GLYPH_CLASS }, + // arab-001.ttx + { "f0", "lu0", + new String[][] { + { "a", "1" }, + { "aacute", "1" }, + { "acircumflex", "1" }, + { "acute", "1" }, + { "adieresis", "1" }, + { "ae", "1" }, + { "agrave", "1" }, + { "ain", "1" }, + { "ainfinal", "1" }, + { "aininitial", "1" }, + { "ainisolated", "1" }, + { "ainmedial", "1" }, + { "aleffinal", "1" }, + { "alefisolated", "1" }, + { "alefmaksura", "1" }, + { "alefmaksurafinal", "1" }, + { "alefmaksuraisolated", "1" }, + { "alefwasla", "1" }, + { "alefwaslafinal", "1" }, + { "alefwaslaisolated", "1" }, + { "alefwithfathatanfinal", "1" }, + { "alefwithfathatanisolated", "1" }, + { "alefwithhamzaabove", "1" }, + { "alefwithhamzaabovefinal", "1" }, + { "alefwithhamzaaboveisolated", "1" }, + { "alefwithhamzabelow", "1" }, + { "alefwithhamzabelowfinal", "1" }, + { "alefwithhamzabelowisolated", "1" }, + { "alefwithmaddaabove", "1" }, + { "alefwithmaddaabovefinal", "1" }, + { "alefwithmaddaaboveisolated", "1" }, + { "allahisolated", "2" }, + { "ampersand", "1" }, + { "arabicae", "1" }, + { "arabicalef", "1" }, + { "arabiccomma", "1" }, + { "arabicfivepointedstar", "1" }, + { "arabicindicdigiteight", "1" }, + { "arabicindicdigitfive", "1" }, + { "arabicindicdigitfour", "1" }, + { "arabicindicdigitnine", "1" }, + { "arabicindicdigitone", "1" }, + { "arabicindicdigitseven", "1" }, + { "arabicindicdigitsix", "1" }, + { "arabicindicdigitthree", "1" }, + { "arabicindicdigittwo", "1" }, + { "arabicindicdigitzero", "1" }, + { "arabickaf", "1" }, + { "arabicpercentsign", "1" }, + { "arabicquestionmark", "1" }, + { "arabicsemicolon", "1" }, + { "aring", "1" }, + { "asciicircum", "1" }, + { "asciitilde", "1" }, + { "asterisk", "1" }, + { "at", "1" }, + { "atilde", "1" }, + { "b", "1" }, + { "backslash", "1" }, + { "bar", "1" }, + { "beh", "1" }, + { "behisolated", "1" }, + { "behmedial", "1" }, + { "braceleft", "1" }, + { "braceright", "1" }, + { "bracketleft", "1" }, + { "bracketright", "1" }, + { "brokenbar", "1" }, + { "bullet", "1" }, + { "c", "1" }, + { "caron", "1" }, + { "ccedilla", "1" }, + { "cedilla", "1" }, + { "cent", "1" }, + { "circumflex", "1" }, + { "colon", "1" }, + { "comma", "1" }, + { "copyright", "1" }, + { "currency", "1" }, + { "d", "1" }, + { "dad", "1" }, + { "dadisolated", "1" }, + { "dadmedial", "1" }, + { "dagger", "1" }, + { "daggerdbl", "1" }, + { "dal", "1" }, + { "dalisolated", "1" }, + { "damma", "3" }, + { "dammahontatweel", "3" }, + { "dammaisolated", "3" }, + { "dammalow", "1" }, + { "dammaonhamza", "3" }, + { "dammatan", "3" }, + { "dammatanisolated", "3" }, + { "dammatanlow", "1" }, + { "dammatanonhamza", "3" }, + { "degree", "1" }, + { "delete", "1" }, + { "dieresis", "1" }, + { "divide", "1" }, + { "dollar", "1" }, + { "dotlessi", "1" }, + { "e", "1" }, + { "eacute", "1" }, + { "ecircumflex", "1" }, + { "edieresis", "1" }, + { "egrave", "1" }, + { "eight", "1" }, + { "ellipsis", "1" }, + { "endash", "1" }, + { "equal", "1" }, + { "eth", "1" }, + { "exclam", "1" }, + { "exclamdown", "1" }, + { "extendedarabicindicdigiteight", "1" }, + { "extendedarabicindicdigitfive", "1" }, + { "extendedarabicindicdigitfour", "1" }, + { "extendedarabicindicdigitnine", "1" }, + { "extendedarabicindicdigitone", "1" }, + { "extendedarabicindicdigitseven", "1" }, + { "extendedarabicindicdigitsix", "1" }, + { "extendedarabicindicdigitthree", "1" }, + { "extendedarabicindicdigittwo", "1" }, + { "extendedarabicindicdigitzero", "1" }, + { "f", "1" }, + { "farsiyeh", "1" }, + { "farsiyehfinal", "1" }, + { "farsiyehisolated", "1" }, + { "fatha", "3" }, + { "fathahontatweel", "3" }, + { "fathaisolated", "3" }, + { "fathalow", "1" }, + { "fathaonhamza", "3" }, + { "fathatan", "3" }, + { "fathatanisolated", "3" }, + { "fathatanlow", "1" }, + { "fathatanonhamza", "3" }, + { "fathatanontatweel", "1" }, + { "feh", "1" }, + { "fehinitial", "1" }, + { "fehisolated", "1" }, + { "fehmedial", "1" }, + { "five", "1" }, + { "florin", "1" }, + { "four", "1" }, + { "g", "1" }, + { "gaf", "1" }, + { "gaffinal", "1" }, + { "gafinitial", "1" }, + { "gafisolated", "1" }, + { "gafmedial", "1" }, + { "germandbls", "1" }, + { "ghain", "1" }, + { "ghainfinal", "1" }, + { "ghaininitial", "1" }, + { "ghainisolated", "1" }, + { "ghainmedial", "1" }, + { "glyph1", "1" }, + { "glyph2", "1" }, + { "glyph99", "1" }, + { "grave", "1" }, + { "greater", "1" }, + { "guillemotleft", "1" }, + { "guillemotright", "1" }, + { "guilsinglleft", "1" }, + { "guilsinglright", "1" }, + { "h", "1" }, + { "hah", "1" }, + { "hahfinal", "1" }, + { "hahisolated", "1" }, + { "hahmedial", "1" }, + { "hamza", "1" }, + { "hamzaisolated", "3" }, + { "heh", "1" }, + { "hehfinal", "1" }, + { "hehinitial", "1" }, + { "hehisolated", "1" }, + { "hehmedial", "1" }, + { "highhamza", "1" }, + { "hyphenminus", "1" }, + { "i", "1" }, + { "iacute", "1" }, + { "icircumflex", "1" }, + { "idieresis", "1" }, + { "igrave", "1" }, + { "j", "1" }, + { "jeem", "1" }, + { "jeemfinal", "1" }, + { "jeemisolated", "1" }, + { "jeemmedial", "1" }, + { "jeh", "1" }, + { "jehisolated", "1" }, + { "k", "1" }, + { "kafisolated", "1" }, + { "kafmedial", "1" }, + { "kasra", "3" }, + { "kasrahontatweel", "3" }, + { "kasraisolated", "3" }, + { "kasralow", "1" }, + { "kasratan", "3" }, + { "kasratanisolated", "3" }, + { "kasratanlow", "1" }, + { "keheh", "1" }, + { "kehehfinal", "1" }, + { "kehehinitial", "1" }, + { "kehehisolated", "1" }, + { "kehehmedial", "1" }, + { "khah", "1" }, + { "khahfinal", "1" }, + { "khahisolated", "1" }, + { "khahmedial", "1" }, + { "l", "1" }, + { "lam", "1" }, + { "lamisolated", "1" }, + { "lammedial", "1" }, + { "lamwithaleffinal", "2" }, + { "lamwithalefhamzaabovefinal", "2" }, + { "lamwithalefhamzaaboveisolatedd", "2" }, + { "lamwithalefhamzabelowfinal", "2" }, + { "lamwithalefhamzabelowisolated", "2" }, + { "lamwithalefisolated", "2" }, + { "lamwithalefmaddaabovefinal", "2" }, + { "lamwithalefmaddaaboveisolatedd", "2" }, + { "lamwithmeemwithjeeminitial", "1" }, + { "lefttoright", "1" }, + { "less", "1" }, + { "logicalnot", "1" }, + { "m", "1" }, + { "macron", "1" }, + { "meem", "1" }, + { "meemisolated", "1" }, + { "meemmedial", "1" }, + { "micro", "1" }, + { "multiply", "1" }, + { "n", "1" }, + { "nbspace", "1" }, + { "nine", "1" }, + { "noon", "1" }, + { "noonisolated", "1" }, + { "noonmedial", "1" }, + { "ntilde", "1" }, + { "numbersign", "1" }, + { "o", "1" }, + { "oacute", "1" }, + { "ocircumflex", "1" }, + { "odieresis", "1" }, + { "oe", "1" }, + { "ograve", "1" }, + { "one", "1" }, + { "onehalf", "1" }, + { "onequarter", "1" }, + { "onesuperior", "1" }, + { "ordfeminine", "1" }, + { "ordmasculine", "1" }, + { "ornateleftparenthesis", "1" }, + { "ornaterightparenthesis", "1" }, + { "oslash", "1" }, + { "otilde", "1" }, + { "p", "1" }, + { "paragraph", "1" }, + { "parenleft", "1" }, + { "parenright", "1" }, + { "peh", "1" }, + { "pehisolated", "1" }, + { "pehmedial", "1" }, + { "percent", "1" }, + { "period", "1" }, + { "periodcentered", "1" }, + { "perthousand", "1" }, + { "plus", "1" }, + { "plusminus", "1" }, + { "q", "1" }, + { "qaf", "1" }, + { "qafinitial", "1" }, + { "qafisolated", "1" }, + { "qafmedial", "1" }, + { "question", "1" }, + { "questiondown", "1" }, + { "quotedash", "1" }, + { "quotedbl", "1" }, + { "quotedblbase", "1" }, + { "quotedblleft", "1" }, + { "quotedblright", "1" }, + { "quoteleft", "1" }, + { "quoteright", "1" }, + { "quotesinglbase", "1" }, + { "quotesingle", "1" }, + { "r", "1" }, + { "rayaleflam", "2" }, + { "registered", "1" }, + { "reh", "1" }, + { "rehisolated", "1" }, + { "righttoleft", "1" }, + { "s", "1" }, + { "sad", "1" }, + { "sadisolated", "1" }, + { "sadmedial", "1" }, + { "scaron", "1" }, + { "section", "1" }, + { "seen", "1" }, + { "seenisolated", "1" }, + { "seenmedial", "1" }, + { "semicolon", "1" }, + { "seven", "1" }, + { "sfthyphen", "1" }, + { "shadda", "3" }, + { "shaddahontatweel", "3" }, + { "shaddaisolated", "3" }, + { "shaddalow", "1" }, + { "shaddawithdammaisolated", "3" }, + { "shaddawithdammalow", "3" }, + { "shaddawithdammamedial", "1" }, + { "shaddawithdammatanisolated", "1" }, + { "shaddawithdammatanlow", "3" }, + { "shaddawithfathaisolated", "3" }, + { "shaddawithfathalow", "3" }, + { "shaddawithfathamedial", "1" }, + { "shaddawithfathatanisolated", "1" }, + { "shaddawithfathatanlow", "3" }, + { "shaddawithkasraisolated", "3" }, + { "shaddawithkasralow", "3" }, + { "shaddawithkasramedial", "1" }, + { "shaddawithkasratanisolated", "1" }, + { "shaddawithkasratanlow", "3" }, + { "sheen", "1" }, + { "sheenisolated", "1" }, + { "sheenmedial", "1" }, + { "six", "1" }, + { "slash", "1" }, + { "smallhighmadda", "3" }, + { "space", "1" }, + { "sterling", "1" }, + { "sukun", "3" }, + { "sukunisolated", "3" }, + { "sukunlow", "1" }, + { "sukunonhamza", "3" }, + { "sukunontatweel", "3" }, + { "superscriptalef", "3" }, + { "t", "1" }, + { "tah", "1" }, + { "tahisolated", "1" }, + { "tatweel", "1" }, + { "tcheh", "1" }, + { "tchehfinal", "1" }, + { "tchehisolated", "1" }, + { "tchehmedial", "1" }, + { "teh", "1" }, + { "tehisolated", "1" }, + { "tehmarbuta", "1" }, + { "tehmarbutafinal", "1" }, + { "tehmarbutaisolated", "1" }, + { "tehmedial", "1" }, + { "thal", "1" }, + { "thalisolated", "1" }, + { "theh", "1" }, + { "thehisolated", "1" }, + { "thehmedial", "1" }, + { "thorn", "1" }, + { "three", "1" }, + { "threequarters", "1" }, + { "threesuperior", "1" }, + { "tilde", "1" }, + { "trademark", "1" }, + { "two", "1" }, + { "twosuperior", "1" }, + { "u", "1" }, + { "uacute", "1" }, + { "ucircumflex", "1" }, + { "udieresis", "1" }, + { "ugrave", "1" }, + { "underscore", "1" }, + { "uni000D", "1" }, + { "uni0649.init", "1" }, + { "uni0654", "3" }, + { "uni0655", "3" }, + { "uni0655064D", "3" }, + { "uni06550650", "3" }, + { "uni06A5.init", "1" }, + { "uni25CC", "1" }, + { "v", "1" }, + { "veh", "1" }, + { "vehisolated", "1" }, + { "vehmedial", "1" }, + { "w", "1" }, + { "waw", "1" }, + { "wawisolated", "1" }, + { "wawwithhamzaabove", "1" }, + { "wawwithhamzaaboveisolated", "1" }, + { "x", "1" }, + { "y", "1" }, + { "yacute", "1" }, + { "ydieresis", "1" }, + { "yeh", "1" }, + { "yehfinal", "1" }, + { "yehisolated", "1" }, + { "yehmedial", "1" }, + { "yehwithhamzaabove", "1" }, + { "yehwithhamzaabovefinal", "1" }, + { "yehwithhamzaaboveisolated", "1" }, + { "yehwithhamzaabovemedial", "1" }, + { "yen", "1" }, + { "z", "1" }, + { "zah", "1" }, + { "zahisolated", "1" }, + { "zain", "1" }, + { "zainisolated", "1" }, + { "zcaron", "1" }, + { "zero", "1" }, + { "zerojoin", "1" }, + { "zeronojoin", "1" }, + { "zerowidthnobreakspace", "1" }, + }, + }, + // arab-002.ttx + { "f1", "lu0", + new String[][] { + { "a", "1" }, + { "aacute", "1" }, + { "acircumflex", "1" }, + { "acute", "1" }, + { "adieresis", "1" }, + { "ae", "1" }, + { "agrave", "1" }, + { "ain", "1" }, + { "ainfinal", "1" }, + { "aininitial", "1" }, + { "ainisolated", "1" }, + { "ainmedial", "1" }, + { "aleffinal", "1" }, + { "alefisolated", "1" }, + { "alefmaksura", "1" }, + { "alefmaksurafinal", "1" }, + { "alefmaksuraisolated", "1" }, + { "alefwasla", "1" }, + { "alefwaslafinal", "1" }, + { "alefwaslaisolated", "1" }, + { "alefwithfathatanfinal", "1" }, + { "alefwithfathatanisolated", "1" }, + { "alefwithhamzaabove", "1" }, + { "alefwithhamzaabovefinal", "1" }, + { "alefwithhamzaaboveisolated", "1" }, + { "alefwithhamzabelow", "1" }, + { "alefwithhamzabelowfinal", "1" }, + { "alefwithhamzabelowisolated", "1" }, + { "alefwithmaddaabove", "1" }, + { "alefwithmaddaabovefinal", "1" }, + { "alefwithmaddaaboveisolated", "1" }, + { "allahisolated", "2" }, + { "ampersand", "1" }, + { "arabicae", "1" }, + { "arabicalef", "1" }, + { "arabiccomma", "1" }, + { "arabicfivepointedstar", "3" }, + { "arabicindicdigiteight", "1" }, + { "arabicindicdigitfive", "1" }, + { "arabicindicdigitfour", "1" }, + { "arabicindicdigitnine", "1" }, + { "arabicindicdigitone", "1" }, + { "arabicindicdigitseven", "1" }, + { "arabicindicdigitsix", "1" }, + { "arabicindicdigitthree", "1" }, + { "arabicindicdigittwo", "1" }, + { "arabicindicdigitzero", "1" }, + { "arabickaf", "1" }, + { "arabickaffinal", "1" }, + { "arabicpercentsign", "1" }, + { "arabicquestionmark", "1" }, + { "arabicsemicolon", "1" }, + { "aring", "1" }, + { "asciicircum", "1" }, + { "asciitilde", "1" }, + { "asterisk", "1" }, + { "at", "1" }, + { "atilde", "1" }, + { "b", "1" }, + { "backslash", "1" }, + { "bar", "1" }, + { "beh", "1" }, + { "behfinal", "1" }, + { "behinitial", "1" }, + { "behisolated", "1" }, + { "behmedial", "1" }, + { "behwithalefmaksurafinal", "2" }, + { "behwithalefmaksuraisolated", "2" }, + { "behwithhahinitial", "2" }, + { "behwithhehinitial", "2" }, + { "behwithjeeminitial", "2" }, + { "behwithkhahinitial", "2" }, + { "behwithmeeminitial", "2" }, + { "behwithmeemisolated", "2" }, + { "behwithnoonfinal", "2" }, + { "behwithrehfinal", "2" }, + { "behwithyehfinal", "2" }, + { "behwithyehisolated", "2" }, + { "braceleft", "1" }, + { "braceright", "1" }, + { "bracketleft", "1" }, + { "bracketright", "1" }, + { "brokenbar", "1" }, + { "bullet", "1" }, + { "c", "1" }, + { "caron", "1" }, + { "ccedilla", "1" }, + { "cedilla", "1" }, + { "cent", "1" }, + { "circumflex", "1" }, + { "colon", "1" }, + { "comma", "1" }, + { "copyright", "1" }, + { "currency", "1" }, + { "d", "1" }, + { "dad", "1" }, + { "dadfinal", "1" }, + { "dadinitial", "1" }, + { "dadisolated", "1" }, + { "dadmedial", "1" }, + { "dagger", "1" }, + { "daggerdbl", "1" }, + { "dal", "1" }, + { "dalfinal", "1" }, + { "dalisolated", "1" }, + { "damma", "3" }, + { "dammahontatweel", "1" }, + { "dammaisolated", "1" }, + { "dammalow", "1" }, + { "dammaonhamza", "3" }, + { "dammatan", "3" }, + { "dammatanisolated", "1" }, + { "dammatanlow", "1" }, + { "dammatanonhamza", "3" }, + { "degree", "1" }, + { "delete", "1" }, + { "dieresis", "1" }, + { "divide", "1" }, + { "dollar", "1" }, + { "dotlessi", "1" }, + { "e", "1" }, + { "eacute", "1" }, + { "ecircumflex", "1" }, + { "edieresis", "1" }, + { "egrave", "1" }, + { "eight", "1" }, + { "ellipsis", "1" }, + { "endash", "1" }, + { "equal", "1" }, + { "eth", "1" }, + { "exclam", "1" }, + { "exclamdown", "1" }, + { "extendedarabicindicdigiteight", "1" }, + { "extendedarabicindicdigitfive", "1" }, + { "extendedarabicindicdigitfour", "1" }, + { "extendedarabicindicdigitnine", "1" }, + { "extendedarabicindicdigitone", "1" }, + { "extendedarabicindicdigitseven", "1" }, + { "extendedarabicindicdigitsix", "1" }, + { "extendedarabicindicdigitthree", "1" }, + { "extendedarabicindicdigittwo", "1" }, + { "extendedarabicindicdigitzero", "1" }, + { "f", "1" }, + { "farsiyeh", "1" }, + { "farsiyehfinal", "1" }, + { "farsiyehisolated", "1" }, + { "fatha", "3" }, + { "fathahontatweel", "1" }, + { "fathaisolated", "1" }, + { "fathalow", "1" }, + { "fathaonhamza", "3" }, + { "fathatan", "3" }, + { "fathatanisolated", "1" }, + { "fathatanlow", "1" }, + { "fathatanonhamza", "3" }, + { "fathatanontatweel", "1" }, + { "feh", "1" }, + { "fehfinal", "1" }, + { "fehinitial", "1" }, + { "fehisolated", "1" }, + { "fehmedial", "1" }, + { "fehwithalefmaksuraisolated", "2" }, + { "fehwithyehisolated", "2" }, + { "five", "1" }, + { "florin", "1" }, + { "four", "1" }, + { "g", "1" }, + { "gaf", "1" }, + { "gaffinal", "1" }, + { "gafinitial", "1" }, + { "gafisolated", "1" }, + { "gafmedial", "1" }, + { "germandbls", "1" }, + { "ghain", "1" }, + { "ghainfinal", "1" }, + { "ghaininitial", "1" }, + { "ghainisolated", "1" }, + { "ghainmedial", "1" }, + { "grave", "1" }, + { "greater", "1" }, + { "guillemotleft", "1" }, + { "guillemotright", "1" }, + { "guilsinglleft", "1" }, + { "guilsinglright", "1" }, + { "h", "1" }, + { "hah", "1" }, + { "hahfinal", "1" }, + { "hahinitial", "1" }, + { "hahisolated", "1" }, + { "hahmedial", "1" }, + { "hahwithmeeminitial", "2" }, + { "hamza", "1" }, + { "hamzaisolated", "1" }, + { "heh", "1" }, + { "hehfinal", "1" }, + { "hehinitial", "1" }, + { "hehisolated", "1" }, + { "hehmedial", "1" }, + { "hehwithmeeminitial", "2" }, + { "highhamza", "1" }, + { "hyphenminus", "1" }, + { "i", "1" }, + { "iacute", "1" }, + { "icircumflex", "1" }, + { "idieresis", "1" }, + { "igrave", "1" }, + { "j", "1" }, + { "jeem", "1" }, + { "jeemfinal", "1" }, + { "jeeminitial", "1" }, + { "jeemisolated", "1" }, + { "jeemmedial", "1" }, + { "jeemwithmeeminitial", "2" }, + { "jeh", "1" }, + { "jehfinal", "1" }, + { "jehisolated", "1" }, + { "k", "1" }, + { "kafinitial", "1" }, + { "kafisolated", "1" }, + { "kafmedial", "1" }, + { "kasra", "3" }, + { "kasrahontatweel", "1" }, + { "kasraisolated", "1" }, + { "kasralow", "1" }, + { "kasratan", "3" }, + { "kasratanisolated", "1" }, + { "kasratanlow", "1" }, + { "keheh", "1" }, + { "kehehfinal", "1" }, + { "kehehinitial", "1" }, + { "kehehisolated", "1" }, + { "kehehmedial", "1" }, + { "khah", "1" }, + { "khahfinal", "1" }, + { "khahinitial", "1" }, + { "khahisolated", "1" }, + { "khahmedial", "1" }, + { "khahwithmeeminitial", "2" }, + { "l", "1" }, + { "lam", "1" }, + { "lamfinal", "1" }, + { "laminitial", "1" }, + { "lamisolated", "1" }, + { "lammedial", "1" }, + { "lamwithaleffinal", "2" }, + { "lamwithalefhamzaabovefinal", "2" }, + { "lamwithalefhamzaaboveisolatedd", "2" }, + { "lamwithalefhamzabelowfinal", "2" }, + { "lamwithalefhamzabelowisolated", "2" }, + { "lamwithalefisolated", "2" }, + { "lamwithalefmaddaabovefinal", "2" }, + { "lamwithalefmaddaaboveisolatedd", "2" }, + { "lamwithalefmaksuraisolated", "2" }, + { "lamwithhahinitial", "2" }, + { "lamwithhahisolated", "2" }, + { "lamwithhehinitial", "2" }, + { "lamwithjeeminitial", "2" }, + { "lamwithjeemisolated", "2" }, + { "lamwithkhahinitial", "2" }, + { "lamwithkhahisolated", "2" }, + { "lamwithmeeminitial", "2" }, + { "lamwithmeemisolated", "2" }, + { "lamwithmeemwithhahinitial", "2" }, + { "lamwithmeemwithjeeminitial", "2" }, + { "lamwithyehisolated", "2" }, + { "lefttoright", "1" }, + { "less", "1" }, + { "logicalnot", "1" }, + { "m", "1" }, + { "macron", "1" }, + { "meem", "1" }, + { "meemfinal", "1" }, + { "meeminitial", "1" }, + { "meemisolated", "1" }, + { "meemmedial", "1" }, + { "meemwithhahinitial", "2" }, + { "meemwithjeeminitial", "2" }, + { "meemwithkhahinitial", "2" }, + { "meemwithmeeminitial", "2" }, + { "micro", "1" }, + { "multiply", "1" }, + { "n", "1" }, + { "nine", "1" }, + { "nonbreakingspace", "1" }, + { "nonmarkingreturn", "1" }, + { "noon", "1" }, + { "noonfinal", "1" }, + { "nooninitial", "1" }, + { "noonisolated", "1" }, + { "noonmedial", "1" }, + { "noonwithalefmaksurafinal", "2" }, + { "noonwithalefmaksuraisolated", "2" }, + { "noonwithhahinitial", "2" }, + { "noonwithhehinitial", "2" }, + { "noonwithjeeminitial", "2" }, + { "noonwithkhahinitial", "2" }, + { "noonwithmeeminitial", "2" }, + { "noonwithmeemisolated", "2" }, + { "noonwithyehfinal", "2" }, + { "noonwithyehisolated", "2" }, + { "noonwithzainfinal", "2" }, + { "ntilde", "1" }, + { "numbersign", "1" }, + { "o", "1" }, + { "oacute", "1" }, + { "ocircumflex", "1" }, + { "odieresis", "1" }, + { "oe", "1" }, + { "ograve", "1" }, + { "one", "1" }, + { "onehalf", "1" }, + { "onequarter", "1" }, + { "onesuperior", "1" }, + { "ordfeminine", "1" }, + { "ordmasculine", "1" }, + { "ornateleftparenthesis", "1" }, + { "ornaterightparenthesis", "1" }, + { "oslash", "1" }, + { "otilde", "1" }, + { "p", "1" }, + { "paragraph", "1" }, + { "parenleft", "1" }, + { "parenright", "1" }, + { "peh", "1" }, + { "pehfinal", "1" }, + { "pehinitial", "1" }, + { "pehisolated", "1" }, + { "pehmedial", "1" }, + { "pehwithhehinitial", "2" }, + { "percent", "1" }, + { "period", "1" }, + { "periodcentered", "1" }, + { "perthousand", "1" }, + { "plus", "1" }, + { "plusminus", "1" }, + { "q", "1" }, + { "qaf", "1" }, + { "qaffinal", "1" }, + { "qafinitial", "1" }, + { "qafisolated", "1" }, + { "qafmedial", "1" }, + { "question", "1" }, + { "questiondown", "1" }, + { "quotedash", "1" }, + { "quotedbl", "1" }, + { "quotedblbase", "1" }, + { "quotedblleft", "1" }, + { "quotedblright", "1" }, + { "quoteleft", "1" }, + { "quoteright", "1" }, + { "quotesinglbase", "1" }, + { "quotesingle", "1" }, + { "r", "1" }, + { "rayaleflam", "2" }, + { "registered", "1" }, + { "reh", "1" }, + { "rehfinal", "1" }, + { "rehisolated", "1" }, + { "righttoleft", "1" }, + { "s", "1" }, + { "sad", "1" }, + { "sadfinal", "1" }, + { "sadinitial", "1" }, + { "sadisolated", "1" }, + { "sadmedial", "1" }, + { "scaron", "1" }, + { "section", "1" }, + { "seen", "1" }, + { "seenfinal", "1" }, + { "seeninitial", "1" }, + { "seenisolated", "1" }, + { "seenmedial", "1" }, + { "seenwithmeeminitial", "2" }, + { "semicolon", "1" }, + { "seven", "1" }, + { "sfthyphen", "1" }, + { "shadda", "3" }, + { "shaddahontatweel", "1" }, + { "shaddaisolated", "1" }, + { "shaddalow", "1" }, + { "shaddawithdammaisolated", "1" }, + { "shaddawithdammaisolatedlow", "3" }, + { "shaddawithdammamedial", "1" }, + { "shaddawithdammatanisolated", "1" }, + { "shaddawithdammatanisolatedlow", "3" }, + { "shaddawithfathaisolated", "1" }, + { "shaddawithfathaisolatedlow", "3" }, + { "shaddawithfathamedial", "1" }, + { "shaddawithfathatanisolated", "3" }, + { "shaddawithfathatanisolatedlow", "3" }, + { "shaddawithkasraisolated", "1" }, + { "shaddawithkasraisolatedlow", "3" }, + { "shaddawithkasramedial", "1" }, + { "shaddawithkasratanisolated", "1" }, + { "shaddawithkasratanisolatedlow", "3" }, + { "sheen", "1" }, + { "sheenfinal", "1" }, + { "sheeninitial", "1" }, + { "sheenisolated", "1" }, + { "sheenmedial", "1" }, + { "sheenwithmeeminitial", "2" }, + { "six", "1" }, + { "slash", "1" }, + { "smallhighmadda", "3" }, + { "space", "1" }, + { "sterling", "1" }, + { "sukun", "3" }, + { "sukunisolated", "1" }, + { "sukunlow", "1" }, + { "sukunonhamza", "3" }, + { "sukunontatweel", "1" }, + { "superscriptalef", "3" }, + { "t", "1" }, + { "tah", "1" }, + { "tahfinal", "1" }, + { "tahinitial", "1" }, + { "tahisolated", "1" }, + { "tahmedial", "1" }, + { "tatweel", "1" }, + { "tcheh", "1" }, + { "tchehfinal", "1" }, + { "tchehinitial", "1" }, + { "tchehisolated", "1" }, + { "tchehmedial", "1" }, + { "teh", "1" }, + { "tehfinal", "1" }, + { "tehinitial", "1" }, + { "tehisolated", "1" }, + { "tehmarbuta", "1" }, + { "tehmarbutafinal", "1" }, + { "tehmarbutaisolated", "1" }, + { "tehmedial", "1" }, + { "tehwithalefmaksurafinal", "2" }, + { "tehwithhahinitial", "2" }, + { "tehwithhehinitial", "2" }, + { "tehwithjeeminitial", "2" }, + { "tehwithkhahinitial", "2" }, + { "tehwithmeeminitial", "2" }, + { "tehwithmeemisolated", "2" }, + { "tehwithnoonfinal", "2" }, + { "tehwithyehfinal", "2" }, + { "tehwithyehisolated", "2" }, + { "thal", "1" }, + { "thalfinal", "1" }, + { "thalisolated", "1" }, + { "theh", "1" }, + { "thehfinal", "1" }, + { "thehinitial", "1" }, + { "thehisolated", "1" }, + { "thehmedial", "1" }, + { "thehwithmeeminitial", "2" }, + { "thehwithmeemisolated", "2" }, + { "thorn", "1" }, + { "three", "1" }, + { "threequarters", "1" }, + { "threesuperior", "1" }, + { "tilde", "1" }, + { "trademark", "1" }, + { "two", "1" }, + { "twosuperior", "1" }, + { "u", "1" }, + { "uacute", "1" }, + { "ucircumflex", "1" }, + { "udieresis", "1" }, + { "ugrave", "1" }, + { "underscore", "1" }, + { "uni000D", "1" }, + { "uni0649.init", "1" }, + { "uni0649.medi", "1" }, + { "uni0654", "3" }, + { "uni0655", "3" }, + { "uni0655064D", "3" }, + { "uni06550650", "3" }, + { "uni25CC", "1" }, + { "uniE817", "2" }, + { "v", "1" }, + { "veh", "1" }, + { "vehfinal", "1" }, + { "vehinitial", "1" }, + { "vehisolated", "1" }, + { "vehmedial", "1" }, + { "w", "1" }, + { "waw", "1" }, + { "wawfinal", "1" }, + { "wawisolated", "1" }, + { "wawwithhamzaabove", "1" }, + { "wawwithhamzaabovefinal", "1" }, + { "wawwithhamzaaboveisolated", "1" }, + { "x", "1" }, + { "y", "1" }, + { "yacute", "1" }, + { "ydieresis", "1" }, + { "yeh", "1" }, + { "yehfinal", "1" }, + { "yehinitial", "1" }, + { "yehisolated", "1" }, + { "yehmedial", "1" }, + { "yehwithalefmaksurafinal", "2" }, + { "yehwithalefmaksuraisolated", "2" }, + { "yehwithhahinitial", "2" }, + { "yehwithhamzaabove", "1" }, + { "yehwithhamzaabovefinal", "1" }, + { "yehwithhamzaaboveinitial", "1" }, + { "yehwithhamzaaboveisolated", "1" }, + { "yehwithhamzaabovemedial", "1" }, + { "yehwithjeeminitial", "2" }, + { "yehwithkhahinitial", "2" }, + { "yehwithmeeminitial", "2" }, + { "yehwithmeemisolated", "2" }, + { "yehwithnoonfinal", "2" }, + { "yehwithrehfinal", "2" }, + { "yen", "1" }, + { "z", "1" }, + { "zah", "1" }, + { "zahfinal", "1" }, + { "zahinitial", "1" }, + { "zahisolated", "1" }, + { "zahmedial", "1" }, + { "zain", "1" }, + { "zainfinal", "1" }, + { "zainisolated", "1" }, + { "zcaron", "1" }, + { "zero", "1" }, + { "zerojoin", "1" }, + { "zeronojoin", "1" }, + { "zerowidthnobreakspace", "1" }, + }, + }, + // arab-003.ttx + { "f2", "lu0", + new String[][] { + { "_bar", "1" }, + { "_damma", "1" }, + { "_dot1", "1" }, + { "_dot1_hat", "1" }, + { "_dot1_smallV", "1" }, + { "_dot1_tah", "1" }, + { "_dot2h", "1" }, + { "_dot2h_tah", "1" }, + { "_dot2v", "1" }, + { "_dot3d", "1" }, + { "_dot3h", "1" }, + { "_dot3u", "1" }, + { "_dot3u_tah", "1" }, + { "_dot4", "1" }, + { "_gafBar", "1" }, + { "_gafBar_dot2h", "1" }, + { "_gafBar_dot3u", "1" }, + { "_hamza", "1" }, + { "_hamzaDamma", "1" }, + { "_hat", "1" }, + { "_highHamza", "1" }, + { "_hook", "1" }, + { "_invSmallV", "1" }, + { "_lines", "1" }, + { "_madda", "1" }, + { "_ring", "1" }, + { "_smallV", "1" }, + { "_tah", "1" }, + { "_vline", "1" }, + { "_wasla", "1" }, + { "_wavyHamza", "1" }, + { "_wavyHamza.b", "1" }, + { "a", "1" }, + { "absAutoKashida", "1" }, + { "absJeemRetro1", "1" }, + { "absJeemRetro1Fin", "1" }, + { "absJeemRetro1Ini", "1" }, + { "absJeemRetro1Med", "1" }, + { "absJeemRetro2", "1" }, + { "absJeemRetro2Fin", "1" }, + { "absJeemRetro2Ini", "1" }, + { "absJeemRetro2Med", "1" }, + { "absJeemRetro3", "1" }, + { "absJeemRetro3Fin", "1" }, + { "absJeemRetro3Ini", "1" }, + { "absJeemRetro3Med", "1" }, + { "absJehRetro1", "1" }, + { "absJehRetro1Fin", "1" }, + { "absJehRetro2", "1" }, + { "absJehRetro2Fin", "1" }, + { "absLamRetro", "1" }, + { "absLamRetroAlef", "2" }, + { "absLamRetroAlefFin", "2" }, + { "absLamRetroFin", "1" }, + { "absLamRetroIni", "1" }, + { "absLamRetroIni.preAlef", "1" }, + { "absLamRetroMed", "1" }, + { "absLamRetroMed.preAlef", "1" }, + { "absShaddaAlef", "3" }, + { "absSheenRetro1", "1" }, + { "absSheenRetro1Fin", "1" }, + { "absSheenRetro1Ini", "1" }, + { "absSheenRetro1Med", "1" }, + { "absSheenRetro2", "1" }, + { "absSheenRetro2Fin", "1" }, + { "absSheenRetro2Ini", "1" }, + { "absSheenRetro2Med", "1" }, + { "absTchehRetro1", "1" }, + { "absTchehRetro1Fin", "1" }, + { "absTchehRetro1Ini", "1" }, + { "absTchehRetro1Med", "1" }, + { "absTchehRetro2", "1" }, + { "absTchehRetro2Fin", "1" }, + { "absTchehRetro2Ini", "1" }, + { "absTchehRetro2Med", "1" }, + { "absWawDotBelow", "1" }, + { "absWawDotBelowFin", "1" }, + { "ampersand", "1" }, + { "asciicircum", "1" }, + { "asciitilde", "1" }, + { "asterisk", "1" }, + { "asterisk.arab", "1" }, + { "at", "1" }, + { "b", "1" }, + { "backslash", "1" }, + { "bar", "1" }, + { "braceleft", "1" }, + { "braceright", "1" }, + { "bracketleft", "1" }, + { "bracketright", "1" }, + { "c", "1" }, + { "colon", "1" }, + { "colon.arab", "1" }, + { "comma", "1" }, + { "d", "1" }, + { "dollar", "1" }, + { "e", "1" }, + { "eight", "1" }, + { "eightMedium", "3" }, + { "eightSmall", "3" }, + { "equal", "1" }, + { "exclam", "1" }, + { "exclam.arab", "1" }, + { "f", "1" }, + { "five", "1" }, + { "fiveMedium", "3" }, + { "fiveSmall", "3" }, + { "four", "1" }, + { "fourMedium", "3" }, + { "fourSmall", "3" }, + { "g", "1" }, + { "grave", "1" }, + { "greater", "1" }, + { "h", "1" }, + { "hyphen", "1" }, + { "i", "1" }, + { "j", "1" }, + { "k", "1" }, + { "l", "1" }, + { "less", "1" }, + { "m", "1" }, + { "n", "1" }, + { "nine", "1" }, + { "nineMedium", "3" }, + { "nineSmall", "3" }, + { "nonmarkingreturn", "1" }, + { "numbersign", "1" }, + { "o", "1" }, + { "one", "1" }, + { "oneMedium", "3" }, + { "oneSmall", "3" }, + { "p", "1" }, + { "parenleft", "1" }, + { "parenleft.arab", "1" }, + { "parenright", "1" }, + { "parenright.arab", "1" }, + { "percent", "1" }, + { "period", "1" }, + { "plus", "1" }, + { "q", "1" }, + { "question", "1" }, + { "quotedbl", "1" }, + { "quotedblleft.arab", "1" }, + { "quotedblright.arab", "1" }, + { "quoteleft.arab", "1" }, + { "quoteright.arab", "1" }, + { "quotesingle", "1" }, + { "r", "1" }, + { "s", "1" }, + { "semicolon", "1" }, + { "seven", "1" }, + { "sevenMedium", "3" }, + { "sevenSmall", "3" }, + { "six", "1" }, + { "sixMedium", "3" }, + { "sixSmall", "3" }, + { "slash", "1" }, + { "space", "1" }, + { "t", "1" }, + { "three", "1" }, + { "threeMedium", "3" }, + { "threeSmall", "3" }, + { "two", "1" }, + { "twoMedium", "3" }, + { "twoSmall", "3" }, + { "u", "1" }, + { "underscore", "1" }, + { "uni060C", "1" }, + { "uni060C.downward", "1" }, + { "uni0614", "3" }, + { "uni061B", "1" }, + { "uni061B.downward", "1" }, + { "uni061E", "1" }, + { "uni061F", "1" }, + { "uni0621", "1" }, + { "uni0622", "1" }, + { "uni0622.fina", "1" }, + { "uni0622.fina.postLamIni", "1" }, + { "uni0622.fina.postLamMed", "1" }, + { "uni0623", "1" }, + { "uni0623.fina", "1" }, + { "uni0623.fina.postLamIni", "1" }, + { "uni0623.fina.postLamMed", "1" }, + { "uni0624", "1" }, + { "uni0624.fina", "1" }, + { "uni0625", "1" }, + { "uni0625.fina", "1" }, + { "uni0625.fina.postLamIni", "1" }, + { "uni0625.fina.postLamMed", "1" }, + { "uni0626", "1" }, + { "uni0626.fina", "1" }, + { "uni0626.init", "1" }, + { "uni0626.medi", "1" }, + { "uni0627", "1" }, + { "uni0627.fina", "1" }, + { "uni0627.fina.postLamIni", "1" }, + { "uni0627.fina.postLamMed", "1" }, + { "uni0628", "1" }, + { "uni0628.fina", "1" }, + { "uni0628.init", "1" }, + { "uni0628.medi", "1" }, + { "uni0629", "1" }, + { "uni0629.fina", "1" }, + { "uni062A", "1" }, + { "uni062A.fina", "1" }, + { "uni062A.init", "1" }, + { "uni062A.medi", "1" }, + { "uni062B", "1" }, + { "uni062B.fina", "1" }, + { "uni062B.init", "1" }, + { "uni062B.medi", "1" }, + { "uni062C", "1" }, + { "uni062C.fina", "1" }, + { "uni062C.init", "1" }, + { "uni062C.medi", "1" }, + { "uni062D", "1" }, + { "uni062D.fina", "1" }, + { "uni062D.init", "1" }, + { "uni062D.medi", "1" }, + { "uni062E", "1" }, + { "uni062E.fina", "1" }, + { "uni062E.init", "1" }, + { "uni062E.medi", "1" }, + { "uni062F", "1" }, + { "uni062F.fina", "1" }, + { "uni0630", "1" }, + { "uni0630.fina", "1" }, + { "uni0631", "1" }, + { "uni0631.fina", "1" }, + { "uni0632", "1" }, + { "uni0632.fina", "1" }, + { "uni0633", "1" }, + { "uni0633.fina", "1" }, + { "uni0633.init", "1" }, + { "uni0633.medi", "1" }, + { "uni0634", "1" }, + { "uni0634.fina", "1" }, + { "uni0634.init", "1" }, + { "uni0634.medi", "1" }, + { "uni0635", "1" }, + { "uni0635.fina", "1" }, + { "uni0635.init", "1" }, + { "uni0635.medi", "1" }, + { "uni0636", "1" }, + { "uni0636.fina", "1" }, + { "uni0636.init", "1" }, + { "uni0636.medi", "1" }, + { "uni0637", "1" }, + { "uni0637.fina", "1" }, + { "uni0637.init", "1" }, + { "uni0637.medi", "1" }, + { "uni0638", "1" }, + { "uni0638.fina", "1" }, + { "uni0638.init", "1" }, + { "uni0638.medi", "1" }, + { "uni0639", "1" }, + { "uni0639.fina", "1" }, + { "uni0639.init", "1" }, + { "uni0639.medi", "1" }, + { "uni063A", "1" }, + { "uni063A.fina", "1" }, + { "uni063A.init", "1" }, + { "uni063A.medi", "1" }, + { "uni0640", "1" }, + { "uni0641", "1" }, + { "uni0641.fina", "1" }, + { "uni0641.init", "1" }, + { "uni0641.medi", "1" }, + { "uni0642", "1" }, + { "uni0642.fina", "1" }, + { "uni0642.init", "1" }, + { "uni0642.medi", "1" }, + { "uni0643", "1" }, + { "uni0643.fina", "1" }, + { "uni0643.init", "1" }, + { "uni0643.medi", "1" }, + { "uni0644", "1" }, + { "uni0644.fina", "1" }, + { "uni0644.init", "1" }, + { "uni0644.init.preAlef", "1" }, + { "uni0644.medi", "1" }, + { "uni0644.medi.preAlef", "1" }, + { "uni06440627", "2" }, + { "uni06440627.fina", "2" }, + { "uni0645", "1" }, + { "uni0645.fina", "1" }, + { "uni0645.fina.sindhi", "1" }, + { "uni0645.init", "1" }, + { "uni0645.medi", "1" }, + { "uni0645.sindhi", "1" }, + { "uni0646", "1" }, + { "uni0646.fina", "1" }, + { "uni0646.init", "1" }, + { "uni0646.medi", "1" }, + { "uni0647", "1" }, + { "uni0647.fina", "1" }, + { "uni0647.fina.hooked", "1" }, + { "uni0647.fina.knottedFlat", "1" }, + { "uni0647.fina.knottedHigh", "1" }, + { "uni0647.init", "1" }, + { "uni0647.init.hooked", "1" }, + { "uni0647.knotted", "1" }, + { "uni0647.medi", "1" }, + { "uni0647.medi.hooked", "1" }, + { "uni0647.medi.knottedHigh", "1" }, + { "uni0648", "1" }, + { "uni0648.fina", "1" }, + { "uni0649", "1" }, + { "uni0649.fina", "1" }, + { "uni0649.init", "1" }, + { "uni0649.medi", "1" }, + { "uni064A", "1" }, + { "uni064A.fina", "1" }, + { "uni064A.fina.noDots", "1" }, + { "uni064A.init", "1" }, + { "uni064A.init.noDots", "1" }, + { "uni064A.medi", "1" }, + { "uni064A.medi.noDots", "1" }, + { "uni064A.noDots", "1" }, + { "uni064B", "3" }, + { "uni064C", "3" }, + { "uni064C.sixNine", "3" }, + { "uni064D", "3" }, + { "uni064E", "3" }, + { "uni064F", "3" }, + { "uni0650", "3" }, + { "uni0651", "3" }, + { "uni0651064B", "3" }, + { "uni0651064C", "3" }, + { "uni0651064D", "3" }, + { "uni0651064E", "3" }, + { "uni0651064F", "3" }, + { "uni06510650", "3" }, + { "uni0652", "3" }, + { "uni0652.downOpen", "3" }, + { "uni0652.leftOpen", "3" }, + { "uni0653", "3" }, + { "uni0654", "3" }, + { "uni0654064E", "3" }, + { "uni0654064F", "3" }, + { "uni0655", "3" }, + { "uni0656", "3" }, + { "uni0657", "3" }, + { "uni0658", "3" }, + { "uni0659", "3" }, + { "uni065A", "3" }, + { "uni065B", "3" }, + { "uni065C", "3" }, + { "uni065D", "3" }, + { "uni065E", "3" }, + { "uni0660", "1" }, + { "uni0660.Medium", "3" }, + { "uni0660.Small", "3" }, + { "uni0661", "1" }, + { "uni0661.Medium", "3" }, + { "uni0661.Small", "3" }, + { "uni0662", "1" }, + { "uni0662.Medium", "3" }, + { "uni0662.Small", "3" }, + { "uni0663", "1" }, + { "uni0663.Medium", "3" }, + { "uni0663.Small", "3" }, + { "uni0664", "1" }, + { "uni0664.Medium", "3" }, + { "uni0664.Small", "3" }, + { "uni0665", "1" }, + { "uni0665.Medium", "3" }, + { "uni0665.Small", "3" }, + { "uni0666", "1" }, + { "uni0666.Medium", "3" }, + { "uni0666.Small", "3" }, + { "uni0667", "1" }, + { "uni0667.Medium", "3" }, + { "uni0667.Small", "3" }, + { "uni0668", "1" }, + { "uni0668.Medium", "3" }, + { "uni0668.Small", "3" }, + { "uni0669", "1" }, + { "uni0669.Medium", "3" }, + { "uni0669.Small", "3" }, + { "uni066A", "1" }, + { "uni066B", "1" }, + { "uni066C", "1" }, + { "uni066D", "1" }, + { "uni066E", "1" }, + { "uni066E.fina", "1" }, + { "uni066E.init", "1" }, + { "uni066E.medi", "1" }, + { "uni066F", "1" }, + { "uni066F.fina", "1" }, + { "uni066F.init", "1" }, + { "uni066F.medi", "1" }, + { "uni0670", "3" }, + { "uni0670.large", "3" }, + { "uni0671", "1" }, + { "uni0671.fina", "1" }, + { "uni0671.fina.postLamIni", "1" }, + { "uni0671.fina.postLamMed", "1" }, + { "uni0672", "1" }, + { "uni0672.fina", "1" }, + { "uni0672.fina.postLamIni", "1" }, + { "uni0672.fina.postLamMed", "1" }, + { "uni0673", "1" }, + { "uni0673.fina", "1" }, + { "uni0673.fina.postLamIni", "1" }, + { "uni0673.fina.postLamMed", "1" }, + { "uni0674", "3" }, + { "uni0675", "1" }, + { "uni0675.fina", "1" }, + { "uni0675.fina.postLamIni", "1" }, + { "uni0675.fina.postLamMed", "1" }, + { "uni0676", "1" }, + { "uni0676.fina", "1" }, + { "uni0677", "1" }, + { "uni0677.fina", "1" }, + { "uni0678", "1" }, + { "uni0678.fina", "1" }, + { "uni0678.init", "1" }, + { "uni0678.medi", "1" }, + { "uni0679", "1" }, + { "uni0679.fina", "1" }, + { "uni0679.init", "1" }, + { "uni0679.medi", "1" }, + { "uni067A", "1" }, + { "uni067A.fina", "1" }, + { "uni067A.init", "1" }, + { "uni067A.medi", "1" }, + { "uni067B", "1" }, + { "uni067B.fina", "1" }, + { "uni067B.init", "1" }, + { "uni067B.medi", "1" }, + { "uni067C", "1" }, + { "uni067C.fina", "1" }, + { "uni067C.init", "1" }, + { "uni067C.medi", "1" }, + { "uni067D", "1" }, + { "uni067D.fina", "1" }, + { "uni067D.init", "1" }, + { "uni067D.medi", "1" }, + { "uni067E", "1" }, + { "uni067E.fina", "1" }, + { "uni067E.init", "1" }, + { "uni067E.medi", "1" }, + { "uni067F", "1" }, + { "uni067F.fina", "1" }, + { "uni067F.init", "1" }, + { "uni067F.medi", "1" }, + { "uni0680", "1" }, + { "uni0680.fina", "1" }, + { "uni0680.init", "1" }, + { "uni0680.medi", "1" }, + { "uni0681", "1" }, + { "uni0681.fina", "1" }, + { "uni0681.init", "1" }, + { "uni0681.medi", "1" }, + { "uni0682", "1" }, + { "uni0682.fina", "1" }, + { "uni0682.init", "1" }, + { "uni0682.medi", "1" }, + { "uni0683", "1" }, + { "uni0683.fina", "1" }, + { "uni0683.init", "1" }, + { "uni0683.medi", "1" }, + { "uni0684", "1" }, + { "uni0684.fina", "1" }, + { "uni0684.init", "1" }, + { "uni0684.medi", "1" }, + { "uni0685", "1" }, + { "uni0685.fina", "1" }, + { "uni0685.init", "1" }, + { "uni0685.medi", "1" }, + { "uni0686", "1" }, + { "uni0686.fina", "1" }, + { "uni0686.init", "1" }, + { "uni0686.medi", "1" }, + { "uni0687", "1" }, + { "uni0687.fina", "1" }, + { "uni0687.init", "1" }, + { "uni0687.medi", "1" }, + { "uni0688", "1" }, + { "uni0688.fina", "1" }, + { "uni0689", "1" }, + { "uni0689.fina", "1" }, + { "uni068A", "1" }, + { "uni068A.fina", "1" }, + { "uni068B", "1" }, + { "uni068B.fina", "1" }, + { "uni068C", "1" }, + { "uni068C.fina", "1" }, + { "uni068D", "1" }, + { "uni068D.fina", "1" }, + { "uni068E", "1" }, + { "uni068E.fina", "1" }, + { "uni068F", "1" }, + { "uni068F.fina", "1" }, + { "uni0690", "1" }, + { "uni0690.fina", "1" }, + { "uni0691", "1" }, + { "uni0691.fina", "1" }, + { "uni0692", "1" }, + { "uni0692.fina", "1" }, + { "uni0693", "1" }, + { "uni0693.fina", "1" }, + { "uni0694", "1" }, + { "uni0694.fina", "1" }, + { "uni0695", "1" }, + { "uni0695.fina", "1" }, + { "uni0696", "1" }, + { "uni0696.fina", "1" }, + { "uni0697", "1" }, + { "uni0697.fina", "1" }, + { "uni0698", "1" }, + { "uni0698.dotHat", "1" }, + { "uni0698.fina", "1" }, + { "uni0698.fina.dotHat", "1" }, + { "uni0699", "1" }, + { "uni0699.fina", "1" }, + { "uni069A", "1" }, + { "uni069A.fina", "1" }, + { "uni069A.init", "1" }, + { "uni069A.medi", "1" }, + { "uni069B", "1" }, + { "uni069B.fina", "1" }, + { "uni069B.init", "1" }, + { "uni069B.medi", "1" }, + { "uni069C", "1" }, + { "uni069C.fina", "1" }, + { "uni069C.init", "1" }, + { "uni069C.medi", "1" }, + { "uni069D", "1" }, + { "uni069D.fina", "1" }, + { "uni069D.init", "1" }, + { "uni069D.medi", "1" }, + { "uni069E", "1" }, + { "uni069E.fina", "1" }, + { "uni069E.init", "1" }, + { "uni069E.medi", "1" }, + { "uni069F", "1" }, + { "uni069F.fina", "1" }, + { "uni069F.init", "1" }, + { "uni069F.medi", "1" }, + { "uni06A0", "1" }, + { "uni06A0.fina", "1" }, + { "uni06A0.init", "1" }, + { "uni06A0.medi", "1" }, + { "uni06A1", "1" }, + { "uni06A1.fina", "1" }, + { "uni06A1.init", "1" }, + { "uni06A1.medi", "1" }, + { "uni06A2", "1" }, + { "uni06A2.fina", "1" }, + { "uni06A2.init", "1" }, + { "uni06A2.medi", "1" }, + { "uni06A3", "1" }, + { "uni06A3.fina", "1" }, + { "uni06A3.init", "1" }, + { "uni06A3.medi", "1" }, + { "uni06A4", "1" }, + { "uni06A4.fina", "1" }, + { "uni06A4.init", "1" }, + { "uni06A4.medi", "1" }, + { "uni06A5", "1" }, + { "uni06A5.fina", "1" }, + { "uni06A5.init", "1" }, + { "uni06A5.medi", "1" }, + { "uni06A6", "1" }, + { "uni06A6.fina", "1" }, + { "uni06A6.init", "1" }, + { "uni06A6.medi", "1" }, + { "uni06A7", "1" }, + { "uni06A7.fina", "1" }, + { "uni06A7.init", "1" }, + { "uni06A7.medi", "1" }, + { "uni06A8", "1" }, + { "uni06A8.fina", "1" }, + { "uni06A8.init", "1" }, + { "uni06A8.medi", "1" }, + { "uni06A9", "1" }, + { "uni06A9.fina", "1" }, + { "uni06A9.init", "1" }, + { "uni06A9.medi", "1" }, + { "uni06AA", "1" }, + { "uni06AA.fina", "1" }, + { "uni06AA.init", "1" }, + { "uni06AA.medi", "1" }, + { "uni06AB", "1" }, + { "uni06AB.fina", "1" }, + { "uni06AB.init", "1" }, + { "uni06AB.medi", "1" }, + { "uni06AC", "1" }, + { "uni06AC.fina", "1" }, + { "uni06AC.init", "1" }, + { "uni06AC.medi", "1" }, + { "uni06AD", "1" }, + { "uni06AD.fina", "1" }, + { "uni06AD.init", "1" }, + { "uni06AD.medi", "1" }, + { "uni06AE", "1" }, + { "uni06AE.fina", "1" }, + { "uni06AE.init", "1" }, + { "uni06AE.medi", "1" }, + { "uni06AF", "1" }, + { "uni06AF.fina", "1" }, + { "uni06AF.init", "1" }, + { "uni06AF.medi", "1" }, + { "uni06B0", "1" }, + { "uni06B0.fina", "1" }, + { "uni06B0.init", "1" }, + { "uni06B0.medi", "1" }, + { "uni06B1", "1" }, + { "uni06B1.fina", "1" }, + { "uni06B1.init", "1" }, + { "uni06B1.medi", "1" }, + { "uni06B2", "1" }, + { "uni06B2.fina", "1" }, + { "uni06B2.init", "1" }, + { "uni06B2.medi", "1" }, + { "uni06B3", "1" }, + { "uni06B3.fina", "1" }, + { "uni06B3.init", "1" }, + { "uni06B3.medi", "1" }, + { "uni06B4", "1" }, + { "uni06B4.fina", "1" }, + { "uni06B4.init", "1" }, + { "uni06B4.medi", "1" }, + { "uni06B5", "1" }, + { "uni06B5.fina", "1" }, + { "uni06B5.init", "1" }, + { "uni06B5.init.preAlef", "1" }, + { "uni06B5.medi", "1" }, + { "uni06B5.medi.preAlef", "1" }, + { "uni06B50627", "2" }, + { "uni06B50627.fina", "2" }, + { "uni06B6", "1" }, + { "uni06B6.fina", "1" }, + { "uni06B6.init", "1" }, + { "uni06B6.init.preAlef", "1" }, + { "uni06B6.medi", "1" }, + { "uni06B6.medi.preAlef", "1" }, + { "uni06B60627", "2" }, + { "uni06B60627.fina", "2" }, + { "uni06B7", "1" }, + { "uni06B7.fina", "1" }, + { "uni06B7.init", "1" }, + { "uni06B7.init.preAlef", "1" }, + { "uni06B7.medi", "1" }, + { "uni06B7.medi.preAlef", "1" }, + { "uni06B70627", "2" }, + { "uni06B70627.fina", "2" }, + { "uni06B8", "1" }, + { "uni06B8.fina", "1" }, + { "uni06B8.init", "1" }, + { "uni06B8.init.preAlef", "1" }, + { "uni06B8.medi", "1" }, + { "uni06B8.medi.preAlef", "1" }, + { "uni06B80627", "2" }, + { "uni06B80627.fina", "2" }, + { "uni06B9", "1" }, + { "uni06B9.fina", "1" }, + { "uni06B9.init", "1" }, + { "uni06B9.medi", "1" }, + { "uni06BA", "1" }, + { "uni06BA.fina", "1" }, + { "uni06BA.init", "1" }, + { "uni06BA.medi", "1" }, + { "uni06BB", "1" }, + { "uni06BB.fina", "1" }, + { "uni06BB.init", "1" }, + { "uni06BB.medi", "1" }, + { "uni06BC", "1" }, + { "uni06BC.fina", "1" }, + { "uni06BC.init", "1" }, + { "uni06BC.medi", "1" }, + { "uni06BD", "1" }, + { "uni06BD.fina", "1" }, + { "uni06BD.init", "1" }, + { "uni06BD.medi", "1" }, + { "uni06BE", "1" }, + { "uni06BE.fina", "1" }, + { "uni06BE.init", "1" }, + { "uni06BE.medi", "1" }, + { "uni06BF", "1" }, + { "uni06BF.fina", "1" }, + { "uni06BF.init", "1" }, + { "uni06BF.medi", "1" }, + { "uni06C0", "1" }, + { "uni06C0.fina", "1" }, + { "uni06C0.init", "1" }, + { "uni06C0.medi", "1" }, + { "uni06C1", "1" }, + { "uni06C1.fina", "1" }, + { "uni06C1.init", "1" }, + { "uni06C1.medi", "1" }, + { "uni06C2", "1" }, + { "uni06C2.fina", "1" }, + { "uni06C2.init", "1" }, + { "uni06C2.medi", "1" }, + { "uni06C3", "1" }, + { "uni06C3.fina", "1" }, + { "uni06C4", "1" }, + { "uni06C4.fina", "1" }, + { "uni06C5", "1" }, + { "uni06C5.fina", "1" }, + { "uni06C6", "1" }, + { "uni06C6.fina", "1" }, + { "uni06C7", "1" }, + { "uni06C7.fina", "1" }, + { "uni06C8", "1" }, + { "uni06C8.fina", "1" }, + { "uni06C9", "1" }, + { "uni06C9.fina", "1" }, + { "uni06CA", "1" }, + { "uni06CA.fina", "1" }, + { "uni06CB", "1" }, + { "uni06CB.fina", "1" }, + { "uni06CC", "1" }, + { "uni06CC.fina", "1" }, + { "uni06CC.init", "1" }, + { "uni06CC.medi", "1" }, + { "uni06CD", "1" }, + { "uni06CD.fina", "1" }, + { "uni06CE", "1" }, + { "uni06CE.fina", "1" }, + { "uni06CE.init", "1" }, + { "uni06CE.medi", "1" }, + { "uni06CF", "1" }, + { "uni06CF.fina", "1" }, + { "uni06D0", "1" }, + { "uni06D0.fina", "1" }, + { "uni06D0.init", "1" }, + { "uni06D0.medi", "1" }, + { "uni06D1", "1" }, + { "uni06D1.fina", "1" }, + { "uni06D1.init", "1" }, + { "uni06D1.medi", "1" }, + { "uni06D2", "1" }, + { "uni06D2.fina", "1" }, + { "uni06D3", "1" }, + { "uni06D3.fina", "1" }, + { "uni06D4", "1" }, + { "uni06D5", "1" }, + { "uni06D6", "3" }, + { "uni06D7", "3" }, + { "uni06D8", "3" }, + { "uni06D9", "3" }, + { "uni06DA", "3" }, + { "uni06DB", "3" }, + { "uni06DC", "3" }, + { "uni06DD", "1" }, + { "uni06DD.2", "1" }, + { "uni06DD.3", "1" }, + { "uni06DD.aat1", "1" }, + { "uni06DD.aat2", "1" }, + { "uni06DD.aat3", "1" }, + { "uni06DD.sp1", "1" }, + { "uni06DD.sp2", "1" }, + { "uni06DD.sp3", "1" }, + { "uni06DE", "1" }, + { "uni06DF", "3" }, + { "uni06E0", "3" }, + { "uni06E1", "3" }, + { "uni06E2", "3" }, + { "uni06E3", "3" }, + { "uni06E4", "3" }, + { "uni06E5", "3" }, + { "uni06E6", "3" }, + { "uni06E7", "3" }, + { "uni06E8", "3" }, + { "uni06E9", "1" }, + { "uni06EA", "3" }, + { "uni06EB", "3" }, + { "uni06EC", "3" }, + { "uni06ED", "3" }, + { "uni06EE", "1" }, + { "uni06EE.fina", "1" }, + { "uni06EF", "1" }, + { "uni06EF.fina", "1" }, + { "uni06F0", "1" }, + { "uni06F0.Medium", "3" }, + { "uni06F0.Small", "3" }, + { "uni06F1", "1" }, + { "uni06F1.Medium", "3" }, + { "uni06F1.Small", "3" }, + { "uni06F2", "1" }, + { "uni06F2.Medium", "3" }, + { "uni06F2.Small", "3" }, + { "uni06F3", "1" }, + { "uni06F3.Medium", "3" }, + { "uni06F3.Small", "3" }, + { "uni06F4", "1" }, + { "uni06F4.Medium", "3" }, + { "uni06F4.Medium.urdu", "3" }, + { "uni06F4.Small", "3" }, + { "uni06F4.Small.urdu", "3" }, + { "uni06F4.urdu", "1" }, + { "uni06F5", "1" }, + { "uni06F5.Medium", "3" }, + { "uni06F5.Small", "3" }, + { "uni06F6", "1" }, + { "uni06F6.Medium", "3" }, + { "uni06F6.Medium.urdu", "3" }, + { "uni06F6.Small", "3" }, + { "uni06F6.Small.urdu", "3" }, + { "uni06F6.urdu", "1" }, + { "uni06F7", "1" }, + { "uni06F7.Medium", "3" }, + { "uni06F7.Medium.urdu", "3" }, + { "uni06F7.Small", "3" }, + { "uni06F7.Small.urdu", "3" }, + { "uni06F7.urdu", "1" }, + { "uni06F8", "1" }, + { "uni06F8.Medium", "3" }, + { "uni06F8.Small", "3" }, + { "uni06F9", "1" }, + { "uni06F9.Medium", "3" }, + { "uni06F9.Small", "3" }, + { "uni06FA", "1" }, + { "uni06FA.fina", "1" }, + { "uni06FA.init", "1" }, + { "uni06FA.medi", "1" }, + { "uni06FB", "1" }, + { "uni06FB.fina", "1" }, + { "uni06FB.init", "1" }, + { "uni06FB.medi", "1" }, + { "uni06FC", "1" }, + { "uni06FC.fina", "1" }, + { "uni06FC.init", "1" }, + { "uni06FC.medi", "1" }, + { "uni06FD", "1" }, + { "uni06FE", "1" }, + { "uni06FF", "1" }, + { "uni06FF.fina", "1" }, + { "uni06FF.init", "1" }, + { "uni06FF.medi", "1" }, + { "uni0750", "1" }, + { "uni0750.fina", "1" }, + { "uni0750.init", "1" }, + { "uni0750.medi", "1" }, + { "uni0751", "1" }, + { "uni0751.fina", "1" }, + { "uni0751.init", "1" }, + { "uni0751.medi", "1" }, + { "uni0752", "1" }, + { "uni0752.fina", "1" }, + { "uni0752.init", "1" }, + { "uni0752.medi", "1" }, + { "uni0753", "1" }, + { "uni0753.fina", "1" }, + { "uni0753.init", "1" }, + { "uni0753.medi", "1" }, + { "uni0754", "1" }, + { "uni0754.fina", "1" }, + { "uni0754.init", "1" }, + { "uni0754.medi", "1" }, + { "uni0755", "1" }, + { "uni0755.fina", "1" }, + { "uni0755.init", "1" }, + { "uni0755.medi", "1" }, + { "uni0756", "1" }, + { "uni0756.fina", "1" }, + { "uni0756.init", "1" }, + { "uni0756.medi", "1" }, + { "uni0757", "1" }, + { "uni0757.fina", "1" }, + { "uni0757.init", "1" }, + { "uni0757.medi", "1" }, + { "uni0758", "1" }, + { "uni0758.fina", "1" }, + { "uni0758.init", "1" }, + { "uni0758.medi", "1" }, + { "uni0759", "1" }, + { "uni0759.fina", "1" }, + { "uni075A", "1" }, + { "uni075A.fina", "1" }, + { "uni075B", "1" }, + { "uni075B.fina", "1" }, + { "uni075C", "1" }, + { "uni075C.fina", "1" }, + { "uni075C.init", "1" }, + { "uni075C.medi", "1" }, + { "uni075D", "1" }, + { "uni075D.fina", "1" }, + { "uni075D.init", "1" }, + { "uni075D.medi", "1" }, + { "uni075E", "1" }, + { "uni075E.fina", "1" }, + { "uni075E.init", "1" }, + { "uni075E.medi", "1" }, + { "uni075F", "1" }, + { "uni075F.fina", "1" }, + { "uni075F.init", "1" }, + { "uni075F.medi", "1" }, + { "uni0760", "1" }, + { "uni0760.fina", "1" }, + { "uni0760.init", "1" }, + { "uni0760.medi", "1" }, + { "uni0761", "1" }, + { "uni0761.fina", "1" }, + { "uni0761.init", "1" }, + { "uni0761.medi", "1" }, + { "uni0762", "1" }, + { "uni0762.fina", "1" }, + { "uni0762.init", "1" }, + { "uni0762.medi", "1" }, + { "uni0763", "1" }, + { "uni0763.fina", "1" }, + { "uni0763.init", "1" }, + { "uni0763.medi", "1" }, + { "uni0764", "1" }, + { "uni0764.fina", "1" }, + { "uni0764.init", "1" }, + { "uni0764.medi", "1" }, + { "uni0765", "1" }, + { "uni0765.fina", "1" }, + { "uni0765.init", "1" }, + { "uni0765.medi", "1" }, + { "uni0766", "1" }, + { "uni0766.fina", "1" }, + { "uni0766.init", "1" }, + { "uni0766.medi", "1" }, + { "uni0767", "1" }, + { "uni0767.fina", "1" }, + { "uni0767.init", "1" }, + { "uni0767.medi", "1" }, + { "uni0768", "1" }, + { "uni0768.fina", "1" }, + { "uni0768.init", "1" }, + { "uni0768.medi", "1" }, + { "uni0769", "1" }, + { "uni0769.fina", "1" }, + { "uni0769.init", "1" }, + { "uni0769.medi", "1" }, + { "uni076A", "1" }, + { "uni076A.fina", "1" }, + { "uni076A.init", "1" }, + { "uni076A.init.preAlef", "1" }, + { "uni076A.medi", "1" }, + { "uni076A.medi.preAlef", "1" }, + { "uni076A0627", "2" }, + { "uni076A0627.fina", "2" }, + { "uni076B", "1" }, + { "uni076B.fina", "1" }, + { "uni076C", "1" }, + { "uni076C.fina", "1" }, + { "uni076D", "1" }, + { "uni076D.fina", "1" }, + { "uni076D.init", "1" }, + { "uni076D.medi", "1" }, + { "uni2000", "1" }, + { "uni2001", "1" }, + { "uni2002", "1" }, + { "uni2003", "1" }, + { "uni2004", "1" }, + { "uni2005", "1" }, + { "uni2006", "1" }, + { "uni2007", "1" }, + { "uni2008", "1" }, + { "uni2009", "1" }, + { "uni200A", "1" }, + { "uni200B", "1" }, + { "uni200C", "1" }, + { "uni200D", "1" }, + { "uni200E", "1" }, + { "uni200F", "1" }, + { "uni202A", "1" }, + { "uni202B", "1" }, + { "uni202C", "1" }, + { "uni202D", "1" }, + { "uni202E", "1" }, + { "uni2060", "1" }, + { "uni206C", "1" }, + { "uni206D", "1" }, + { "uni25CC", "1" }, + { "uniFD3E", "1" }, + { "uniFD3F", "1" }, + { "uniFDF2", "1" }, + { "uniFDFC", "1" }, + { "uniFEFF", "1" }, + { "v", "1" }, + { "w", "1" }, + { "x", "1" }, + { "y", "1" }, + { "z", "1" }, + { "zero", "1" }, + { "zeroMedium", "3" }, + { "zeroSmall", "3" }, + }, + }, + // arab-004.ttx + { "f3", "lu0", + new String[][] { + { "_bar", "1" }, + { "_damma", "1" }, + { "_dot1", "1" }, + { "_dot1_hat", "1" }, + { "_dot1_smallV", "1" }, + { "_dot1_tah", "1" }, + { "_dot2h", "1" }, + { "_dot2h_tah", "1" }, + { "_dot2v", "1" }, + { "_dot3d", "1" }, + { "_dot3h", "1" }, + { "_dot3u", "1" }, + { "_dot3u_tah", "1" }, + { "_dot4", "1" }, + { "_gafBar", "1" }, + { "_gafBarShort", "1" }, + { "_gafBarShort_dot2h", "1" }, + { "_gafBarShort_dot3u", "1" }, + { "_gafBar_dot2h", "1" }, + { "_gafBar_dot3u", "1" }, + { "_hamza", "1" }, + { "_hamzaDamma", "1" }, + { "_hat", "1" }, + { "_highHamza", "1" }, + { "_invSmallV", "1" }, + { "_lines", "1" }, + { "_madda", "1" }, + { "_ring", "1" }, + { "_smallV", "1" }, + { "_tah", "1" }, + { "_vline", "1" }, + { "_wasla", "1" }, + { "_wavyHamza", "1" }, + { "_wavyHamza.b", "1" }, + { "a", "1" }, + { "absAutoKashida", "1" }, + { "absJeemRetro1", "1" }, + { "absJeemRetro1Fin", "1" }, + { "absJeemRetro1Ini", "1" }, + { "absJeemRetro1Med", "1" }, + { "absJeemRetro2", "1" }, + { "absJeemRetro2Fin", "1" }, + { "absJeemRetro2Ini", "1" }, + { "absJeemRetro2Med", "1" }, + { "absJeemRetro3", "1" }, + { "absJeemRetro3Fin", "1" }, + { "absJeemRetro3Ini", "1" }, + { "absJeemRetro3Med", "1" }, + { "absJehRetro1", "1" }, + { "absJehRetro1Fin", "1" }, + { "absJehRetro2", "1" }, + { "absJehRetro2Fin", "1" }, + { "absLamRetro", "1" }, + { "absLamRetroAlef", "2" }, + { "absLamRetroAlefFin", "2" }, + { "absLamRetroFin", "1" }, + { "absLamRetroIni", "1" }, + { "absLamRetroIni.preAlef", "1" }, + { "absLamRetroMed", "1" }, + { "absLamRetroMed.preAlef", "1" }, + { "absShaddaAlef", "3" }, + { "absSheenRetro1", "1" }, + { "absSheenRetro1Fin", "1" }, + { "absSheenRetro1Ini", "1" }, + { "absSheenRetro1Med", "1" }, + { "absSheenRetro2", "1" }, + { "absSheenRetro2Fin", "1" }, + { "absSheenRetro2Ini", "1" }, + { "absSheenRetro2Med", "1" }, + { "absTchehRetro1", "1" }, + { "absTchehRetro1Fin", "1" }, + { "absTchehRetro1Ini", "1" }, + { "absTchehRetro1Med", "1" }, + { "absTchehRetro2", "1" }, + { "absTchehRetro2Fin", "1" }, + { "absTchehRetro2Ini", "1" }, + { "absTchehRetro2Med", "1" }, + { "absWawDotBelow", "1" }, + { "absWawDotBelowFin", "1" }, + { "ampersand", "1" }, + { "asciicircum", "1" }, + { "asciitilde", "1" }, + { "asterisk", "1" }, + { "at", "1" }, + { "b", "1" }, + { "backslash", "1" }, + { "bar", "1" }, + { "braceleft", "1" }, + { "braceright", "1" }, + { "bracketleft", "1" }, + { "bracketright", "1" }, + { "c", "1" }, + { "colon", "1" }, + { "comma", "1" }, + { "d", "1" }, + { "dollar", "1" }, + { "e", "1" }, + { "eight", "1" }, + { "eightMedium", "3" }, + { "eightSmall", "3" }, + { "equal", "1" }, + { "exclam", "1" }, + { "f", "1" }, + { "five", "1" }, + { "fiveMedium", "3" }, + { "fiveSmall", "3" }, + { "four", "1" }, + { "fourMedium", "3" }, + { "fourSmall", "3" }, + { "g", "1" }, + { "grave", "1" }, + { "greater", "1" }, + { "h", "1" }, + { "hyphen", "1" }, + { "i", "1" }, + { "j", "1" }, + { "k", "1" }, + { "l", "1" }, + { "less", "1" }, + { "m", "1" }, + { "n", "1" }, + { "nine", "1" }, + { "nineMedium", "3" }, + { "nineSmall", "3" }, + { "nonmarkingreturn", "1" }, + { "numbersign", "1" }, + { "o", "1" }, + { "one", "1" }, + { "oneMedium", "3" }, + { "oneSmall", "3" }, + { "p", "1" }, + { "parenleft", "1" }, + { "parenright", "1" }, + { "percent", "1" }, + { "period", "1" }, + { "plus", "1" }, + { "q", "1" }, + { "question", "1" }, + { "quotedbl", "1" }, + { "quotesingle", "1" }, + { "r", "1" }, + { "s", "1" }, + { "semicolon", "1" }, + { "seven", "1" }, + { "sevenMedium", "3" }, + { "sevenSmall", "3" }, + { "six", "1" }, + { "sixMedium", "3" }, + { "sixSmall", "3" }, + { "slash", "1" }, + { "space", "1" }, + { "t", "1" }, + { "three", "1" }, + { "threeMedium", "3" }, + { "threeSmall", "3" }, + { "two", "1" }, + { "twoMedium", "3" }, + { "twoSmall", "3" }, + { "u", "1" }, + { "underscore", "1" }, + { "uni0600", "1" }, + { "uni0600.2", "1" }, + { "uni0600.3", "1" }, + { "uni0600.aat1", "1" }, + { "uni0600.aat2", "1" }, + { "uni0600.aat3", "1" }, + { "uni0600.sp1", "1" }, + { "uni0600.sp2", "1" }, + { "uni0600.sp3", "1" }, + { "uni0601", "1" }, + { "uni0601.2", "1" }, + { "uni0601.3", "1" }, + { "uni0601.4", "1" }, + { "uni0601.aat1", "1" }, + { "uni0601.aat2", "1" }, + { "uni0601.aat3", "1" }, + { "uni0601.aat4", "1" }, + { "uni0601.sp1", "1" }, + { "uni0601.sp2", "1" }, + { "uni0601.sp3", "1" }, + { "uni0601.sp4", "1" }, + { "uni0602", "1" }, + { "uni0602.2", "1" }, + { "uni0602.aat1", "1" }, + { "uni0602.aat2", "1" }, + { "uni0602.sp1", "1" }, + { "uni0602.sp2", "1" }, + { "uni0603", "1" }, + { "uni0603.2", "1" }, + { "uni0603.3", "1" }, + { "uni0603.aat1", "1" }, + { "uni0603.aat2", "1" }, + { "uni0603.aat3", "1" }, + { "uni0603.sp1", "1" }, + { "uni0603.sp2", "1" }, + { "uni0603.sp3", "1" }, + { "uni060B", "1" }, + { "uni060C", "1" }, + { "uni060C.downward", "1" }, + { "uni060D", "1" }, + { "uni060E", "1" }, + { "uni060F", "1" }, + { "uni0610", "3" }, + { "uni0611", "3" }, + { "uni0612", "3" }, + { "uni0613", "3" }, + { "uni0614", "3" }, + { "uni0615", "3" }, + { "uni061B", "1" }, + { "uni061B.downward", "1" }, + { "uni061E", "1" }, + { "uni061F", "1" }, + { "uni0621", "1" }, + { "uni0622", "1" }, + { "uni0622.fina", "1" }, + { "uni0622.fina.postLamIni", "1" }, + { "uni0622.fina.postLamMed", "1" }, + { "uni0623", "1" }, + { "uni0623.fina", "1" }, + { "uni0623.fina.postLamIni", "1" }, + { "uni0623.fina.postLamMed", "1" }, + { "uni0624", "1" }, + { "uni0624.fina", "1" }, + { "uni0625", "1" }, + { "uni0625.fina", "1" }, + { "uni0625.fina.postLamIni", "1" }, + { "uni0625.fina.postLamMed", "1" }, + { "uni0626", "1" }, + { "uni0626.fina", "1" }, + { "uni0626.init", "1" }, + { "uni0626.medi", "1" }, + { "uni0627", "1" }, + { "uni0627.fina", "1" }, + { "uni0627.fina.postLamIni", "1" }, + { "uni0627.fina.postLamMed", "1" }, + { "uni0628", "1" }, + { "uni0628.fina", "1" }, + { "uni0628.init", "1" }, + { "uni0628.medi", "1" }, + { "uni0629", "1" }, + { "uni0629.fina", "1" }, + { "uni062A", "1" }, + { "uni062A.fina", "1" }, + { "uni062A.init", "1" }, + { "uni062A.medi", "1" }, + { "uni062B", "1" }, + { "uni062B.fina", "1" }, + { "uni062B.init", "1" }, + { "uni062B.medi", "1" }, + { "uni062C", "1" }, + { "uni062C.fina", "1" }, + { "uni062C.init", "1" }, + { "uni062C.medi", "1" }, + { "uni062D", "1" }, + { "uni062D.fina", "1" }, + { "uni062D.init", "1" }, + { "uni062D.medi", "1" }, + { "uni062E", "1" }, + { "uni062E.fina", "1" }, + { "uni062E.init", "1" }, + { "uni062E.medi", "1" }, + { "uni062F", "1" }, + { "uni062F.fina", "1" }, + { "uni0630", "1" }, + { "uni0630.fina", "1" }, + { "uni0631", "1" }, + { "uni0631.fina", "1" }, + { "uni0632", "1" }, + { "uni0632.fina", "1" }, + { "uni0633", "1" }, + { "uni0633.fina", "1" }, + { "uni0633.init", "1" }, + { "uni0633.medi", "1" }, + { "uni0634", "1" }, + { "uni0634.fina", "1" }, + { "uni0634.init", "1" }, + { "uni0634.medi", "1" }, + { "uni0635", "1" }, + { "uni0635.fina", "1" }, + { "uni0635.init", "1" }, + { "uni0635.medi", "1" }, + { "uni0636", "1" }, + { "uni0636.fina", "1" }, + { "uni0636.init", "1" }, + { "uni0636.medi", "1" }, + { "uni0637", "1" }, + { "uni0637.fina", "1" }, + { "uni0637.init", "1" }, + { "uni0637.medi", "1" }, + { "uni0638", "1" }, + { "uni0638.fina", "1" }, + { "uni0638.init", "1" }, + { "uni0638.medi", "1" }, + { "uni0639", "1" }, + { "uni0639.fina", "1" }, + { "uni0639.init", "1" }, + { "uni0639.medi", "1" }, + { "uni063A", "1" }, + { "uni063A.fina", "1" }, + { "uni063A.init", "1" }, + { "uni063A.medi", "1" }, + { "uni0640", "1" }, + { "uni0641", "1" }, + { "uni0641.fina", "1" }, + { "uni0641.init", "1" }, + { "uni0641.medi", "1" }, + { "uni0642", "1" }, + { "uni0642.fina", "1" }, + { "uni0642.init", "1" }, + { "uni0642.medi", "1" }, + { "uni0643", "1" }, + { "uni0643.fina", "1" }, + { "uni0643.init", "1" }, + { "uni0643.medi", "1" }, + { "uni0644", "1" }, + { "uni0644.fina", "1" }, + { "uni0644.init", "1" }, + { "uni0644.init.preAlef", "1" }, + { "uni0644.medi", "1" }, + { "uni0644.medi.preAlef", "1" }, + { "uni06440627", "2" }, + { "uni06440627.fina", "2" }, + { "uni0645", "1" }, + { "uni0645.fina", "1" }, + { "uni0645.fina.sindhi", "1" }, + { "uni0645.init", "1" }, + { "uni0645.medi", "1" }, + { "uni0645.sindhi", "1" }, + { "uni0646", "1" }, + { "uni0646.fina", "1" }, + { "uni0646.init", "1" }, + { "uni0646.medi", "1" }, + { "uni0647", "1" }, + { "uni0647.fina", "1" }, + { "uni0647.fina.hooked", "1" }, + { "uni0647.fina.knottedFlat", "1" }, + { "uni0647.fina.knottedHigh", "1" }, + { "uni0647.init", "1" }, + { "uni0647.init.hooked", "1" }, + { "uni0647.knotted", "1" }, + { "uni0647.medi", "1" }, + { "uni0647.medi.hooked", "1" }, + { "uni0647.medi.knottedHigh", "1" }, + { "uni0648", "1" }, + { "uni0648.fina", "1" }, + { "uni0649", "1" }, + { "uni0649.fina", "1" }, + { "uni0649.init", "1" }, + { "uni0649.medi", "1" }, + { "uni064A", "1" }, + { "uni064A.fina", "1" }, + { "uni064A.fina.noDots", "1" }, + { "uni064A.init", "1" }, + { "uni064A.init.noDots", "1" }, + { "uni064A.medi", "1" }, + { "uni064A.medi.noDots", "1" }, + { "uni064A.noDots", "1" }, + { "uni064B", "3" }, + { "uni064C", "3" }, + { "uni064C.sixNine", "3" }, + { "uni064D", "3" }, + { "uni064E", "3" }, + { "uni064F", "3" }, + { "uni0650", "3" }, + { "uni0651", "3" }, + { "uni0651064B", "3" }, + { "uni0651064C", "3" }, + { "uni0651064D", "3" }, + { "uni0651064E", "3" }, + { "uni0651064F", "3" }, + { "uni06510650", "3" }, + { "uni0652", "3" }, + { "uni0652.downOpen", "3" }, + { "uni0652.leftOpen", "3" }, + { "uni0653", "3" }, + { "uni0654", "3" }, + { "uni0654064E", "3" }, + { "uni0654064F", "3" }, + { "uni0655", "3" }, + { "uni0656", "3" }, + { "uni0657", "3" }, + { "uni0658", "3" }, + { "uni0659", "3" }, + { "uni065A", "3" }, + { "uni065B", "3" }, + { "uni065C", "3" }, + { "uni065D", "3" }, + { "uni065E", "3" }, + { "uni0660", "1" }, + { "uni0660.Medium", "3" }, + { "uni0660.Small", "3" }, + { "uni0661", "1" }, + { "uni0661.Medium", "3" }, + { "uni0661.Small", "3" }, + { "uni0662", "1" }, + { "uni0662.Medium", "3" }, + { "uni0662.Small", "3" }, + { "uni0663", "1" }, + { "uni0663.Medium", "3" }, + { "uni0663.Small", "3" }, + { "uni0664", "1" }, + { "uni0664.Medium", "3" }, + { "uni0664.Small", "3" }, + { "uni0665", "1" }, + { "uni0665.Medium", "3" }, + { "uni0665.Small", "3" }, + { "uni0666", "1" }, + { "uni0666.Medium", "3" }, + { "uni0666.Small", "3" }, + { "uni0667", "1" }, + { "uni0667.Medium", "3" }, + { "uni0667.Small", "3" }, + { "uni0668", "1" }, + { "uni0668.Medium", "3" }, + { "uni0668.Small", "3" }, + { "uni0669", "1" }, + { "uni0669.Medium", "3" }, + { "uni0669.Small", "3" }, + { "uni066A", "1" }, + { "uni066B", "1" }, + { "uni066C", "1" }, + { "uni066D", "1" }, + { "uni066E", "1" }, + { "uni066E.fina", "1" }, + { "uni066E.init", "1" }, + { "uni066E.medi", "1" }, + { "uni066F", "1" }, + { "uni066F.fina", "1" }, + { "uni066F.init", "1" }, + { "uni066F.medi", "1" }, + { "uni0670", "3" }, + { "uni0670.large", "3" }, + { "uni0671", "1" }, + { "uni0671.fina", "1" }, + { "uni0671.fina.postLamIni", "1" }, + { "uni0671.fina.postLamMed", "1" }, + { "uni0672", "1" }, + { "uni0672.fina", "1" }, + { "uni0672.fina.postLamIni", "1" }, + { "uni0672.fina.postLamMed", "1" }, + { "uni0673", "1" }, + { "uni0673.fina", "1" }, + { "uni0673.fina.postLamIni", "1" }, + { "uni0673.fina.postLamMed", "1" }, + { "uni0674", "3" }, + { "uni0675", "1" }, + { "uni0675.fina", "1" }, + { "uni0675.fina.postLamIni", "1" }, + { "uni0675.fina.postLamMed", "1" }, + { "uni0676", "1" }, + { "uni0676.fina", "1" }, + { "uni0677", "1" }, + { "uni0677.fina", "1" }, + { "uni0678", "1" }, + { "uni0678.fina", "1" }, + { "uni0678.init", "1" }, + { "uni0678.medi", "1" }, + { "uni0679", "1" }, + { "uni0679.fina", "1" }, + { "uni0679.init", "1" }, + { "uni0679.medi", "1" }, + { "uni067A", "1" }, + { "uni067A.fina", "1" }, + { "uni067A.init", "1" }, + { "uni067A.medi", "1" }, + { "uni067B", "1" }, + { "uni067B.fina", "1" }, + { "uni067B.init", "1" }, + { "uni067B.medi", "1" }, + { "uni067C", "1" }, + { "uni067C.fina", "1" }, + { "uni067C.init", "1" }, + { "uni067C.medi", "1" }, + { "uni067D", "1" }, + { "uni067D.fina", "1" }, + { "uni067D.init", "1" }, + { "uni067D.medi", "1" }, + { "uni067E", "1" }, + { "uni067E.fina", "1" }, + { "uni067E.init", "1" }, + { "uni067E.medi", "1" }, + { "uni067F", "1" }, + { "uni067F.fina", "1" }, + { "uni067F.init", "1" }, + { "uni067F.medi", "1" }, + { "uni0680", "1" }, + { "uni0680.fina", "1" }, + { "uni0680.init", "1" }, + { "uni0680.medi", "1" }, + { "uni0681", "1" }, + { "uni0681.fina", "1" }, + { "uni0681.init", "1" }, + { "uni0681.medi", "1" }, + { "uni0682", "1" }, + { "uni0682.fina", "1" }, + { "uni0682.init", "1" }, + { "uni0682.medi", "1" }, + { "uni0683", "1" }, + { "uni0683.fina", "1" }, + { "uni0683.init", "1" }, + { "uni0683.medi", "1" }, + { "uni0684", "1" }, + { "uni0684.fina", "1" }, + { "uni0684.init", "1" }, + { "uni0684.medi", "1" }, + { "uni0685", "1" }, + { "uni0685.fina", "1" }, + { "uni0685.init", "1" }, + { "uni0685.medi", "1" }, + { "uni0686", "1" }, + { "uni0686.fina", "1" }, + { "uni0686.init", "1" }, + { "uni0686.medi", "1" }, + { "uni0687", "1" }, + { "uni0687.fina", "1" }, + { "uni0687.init", "1" }, + { "uni0687.medi", "1" }, + { "uni0688", "1" }, + { "uni0688.fina", "1" }, + { "uni0689", "1" }, + { "uni0689.fina", "1" }, + { "uni068A", "1" }, + { "uni068A.fina", "1" }, + { "uni068B", "1" }, + { "uni068B.fina", "1" }, + { "uni068C", "1" }, + { "uni068C.fina", "1" }, + { "uni068D", "1" }, + { "uni068D.fina", "1" }, + { "uni068E", "1" }, + { "uni068E.fina", "1" }, + { "uni068F", "1" }, + { "uni068F.fina", "1" }, + { "uni0690", "1" }, + { "uni0690.fina", "1" }, + { "uni0691", "1" }, + { "uni0691.fina", "1" }, + { "uni0692", "1" }, + { "uni0692.fina", "1" }, + { "uni0693", "1" }, + { "uni0693.fina", "1" }, + { "uni0694", "1" }, + { "uni0694.fina", "1" }, + { "uni0695", "1" }, + { "uni0695.fina", "1" }, + { "uni0696", "1" }, + { "uni0696.fina", "1" }, + { "uni0697", "1" }, + { "uni0697.fina", "1" }, + { "uni0698", "1" }, + { "uni0698.dotHat", "1" }, + { "uni0698.fina", "1" }, + { "uni0698.fina.dotHat", "1" }, + { "uni0699", "1" }, + { "uni0699.fina", "1" }, + { "uni069A", "1" }, + { "uni069A.fina", "1" }, + { "uni069A.init", "1" }, + { "uni069A.medi", "1" }, + { "uni069B", "1" }, + { "uni069B.fina", "1" }, + { "uni069B.init", "1" }, + { "uni069B.medi", "1" }, + { "uni069C", "1" }, + { "uni069C.fina", "1" }, + { "uni069C.init", "1" }, + { "uni069C.medi", "1" }, + { "uni069D", "1" }, + { "uni069D.fina", "1" }, + { "uni069D.init", "1" }, + { "uni069D.medi", "1" }, + { "uni069E", "1" }, + { "uni069E.fina", "1" }, + { "uni069E.init", "1" }, + { "uni069E.medi", "1" }, + { "uni069F", "1" }, + { "uni069F.fina", "1" }, + { "uni069F.init", "1" }, + { "uni069F.medi", "1" }, + { "uni06A0", "1" }, + { "uni06A0.fina", "1" }, + { "uni06A0.init", "1" }, + { "uni06A0.medi", "1" }, + { "uni06A1", "1" }, + { "uni06A1.fina", "1" }, + { "uni06A1.init", "1" }, + { "uni06A1.medi", "1" }, + { "uni06A2", "1" }, + { "uni06A2.fina", "1" }, + { "uni06A2.init", "1" }, + { "uni06A2.medi", "1" }, + { "uni06A3", "1" }, + { "uni06A3.fina", "1" }, + { "uni06A3.init", "1" }, + { "uni06A3.medi", "1" }, + { "uni06A4", "1" }, + { "uni06A4.fina", "1" }, + { "uni06A4.init", "1" }, + { "uni06A4.medi", "1" }, + { "uni06A5", "1" }, + { "uni06A5.fina", "1" }, + { "uni06A5.init", "1" }, + { "uni06A5.medi", "1" }, + { "uni06A6", "1" }, + { "uni06A6.fina", "1" }, + { "uni06A6.init", "1" }, + { "uni06A6.medi", "1" }, + { "uni06A7", "1" }, + { "uni06A7.fina", "1" }, + { "uni06A7.init", "1" }, + { "uni06A7.medi", "1" }, + { "uni06A8", "1" }, + { "uni06A8.fina", "1" }, + { "uni06A8.init", "1" }, + { "uni06A8.medi", "1" }, + { "uni06A9", "1" }, + { "uni06A9.fina", "1" }, + { "uni06A9.init", "1" }, + { "uni06A9.medi", "1" }, + { "uni06AA", "1" }, + { "uni06AA.fina", "1" }, + { "uni06AA.init", "1" }, + { "uni06AA.medi", "1" }, + { "uni06AB", "1" }, + { "uni06AB.fina", "1" }, + { "uni06AB.init", "1" }, + { "uni06AB.medi", "1" }, + { "uni06AC", "1" }, + { "uni06AC.fina", "1" }, + { "uni06AC.init", "1" }, + { "uni06AC.medi", "1" }, + { "uni06AD", "1" }, + { "uni06AD.fina", "1" }, + { "uni06AD.init", "1" }, + { "uni06AD.medi", "1" }, + { "uni06AE", "1" }, + { "uni06AE.fina", "1" }, + { "uni06AE.init", "1" }, + { "uni06AE.medi", "1" }, + { "uni06AF", "1" }, + { "uni06AF.fina", "1" }, + { "uni06AF.init", "1" }, + { "uni06AF.medi", "1" }, + { "uni06B0", "1" }, + { "uni06B0.fina", "1" }, + { "uni06B0.init", "1" }, + { "uni06B0.medi", "1" }, + { "uni06B1", "1" }, + { "uni06B1.fina", "1" }, + { "uni06B1.init", "1" }, + { "uni06B1.medi", "1" }, + { "uni06B2", "1" }, + { "uni06B2.fina", "1" }, + { "uni06B2.init", "1" }, + { "uni06B2.medi", "1" }, + { "uni06B3", "1" }, + { "uni06B3.fina", "1" }, + { "uni06B3.init", "1" }, + { "uni06B3.medi", "1" }, + { "uni06B4", "1" }, + { "uni06B4.fina", "1" }, + { "uni06B4.init", "1" }, + { "uni06B4.medi", "1" }, + { "uni06B5", "1" }, + { "uni06B5.fina", "1" }, + { "uni06B5.init", "1" }, + { "uni06B5.init.preAlef", "1" }, + { "uni06B5.medi", "1" }, + { "uni06B5.medi.preAlef", "1" }, + { "uni06B50627", "2" }, + { "uni06B50627.fina", "2" }, + { "uni06B6", "1" }, + { "uni06B6.fina", "1" }, + { "uni06B6.init", "1" }, + { "uni06B6.init.preAlef", "1" }, + { "uni06B6.medi", "1" }, + { "uni06B6.medi.preAlef", "1" }, + { "uni06B60627", "2" }, + { "uni06B60627.fina", "2" }, + { "uni06B7", "1" }, + { "uni06B7.fina", "1" }, + { "uni06B7.init", "1" }, + { "uni06B7.init.preAlef", "1" }, + { "uni06B7.medi", "1" }, + { "uni06B7.medi.preAlef", "1" }, + { "uni06B70627", "2" }, + { "uni06B70627.fina", "2" }, + { "uni06B8", "1" }, + { "uni06B8.fina", "1" }, + { "uni06B8.init", "1" }, + { "uni06B8.init.preAlef", "1" }, + { "uni06B8.medi", "1" }, + { "uni06B8.medi.preAlef", "1" }, + { "uni06B80627", "2" }, + { "uni06B80627.fina", "2" }, + { "uni06B9", "1" }, + { "uni06B9.fina", "1" }, + { "uni06B9.init", "1" }, + { "uni06B9.medi", "1" }, + { "uni06BA", "1" }, + { "uni06BA.fina", "1" }, + { "uni06BA.init", "1" }, + { "uni06BA.medi", "1" }, + { "uni06BB", "1" }, + { "uni06BB.fina", "1" }, + { "uni06BB.init", "1" }, + { "uni06BB.medi", "1" }, + { "uni06BC", "1" }, + { "uni06BC.fina", "1" }, + { "uni06BC.init", "1" }, + { "uni06BC.medi", "1" }, + { "uni06BD", "1" }, + { "uni06BD.fina", "1" }, + { "uni06BD.init", "1" }, + { "uni06BD.medi", "1" }, + { "uni06BE", "1" }, + { "uni06BE.fina", "1" }, + { "uni06BE.init", "1" }, + { "uni06BE.medi", "1" }, + { "uni06BF", "1" }, + { "uni06BF.fina", "1" }, + { "uni06BF.init", "1" }, + { "uni06BF.medi", "1" }, + { "uni06C0", "1" }, + { "uni06C0.fina", "1" }, + { "uni06C0.init", "1" }, + { "uni06C0.medi", "1" }, + { "uni06C1", "1" }, + { "uni06C1.fina", "1" }, + { "uni06C1.init", "1" }, + { "uni06C1.medi", "1" }, + { "uni06C2", "1" }, + { "uni06C2.fina", "1" }, + { "uni06C2.init", "1" }, + { "uni06C2.medi", "1" }, + { "uni06C3", "1" }, + { "uni06C3.fina", "1" }, + { "uni06C4", "1" }, + { "uni06C4.fina", "1" }, + { "uni06C5", "1" }, + { "uni06C5.fina", "1" }, + { "uni06C6", "1" }, + { "uni06C6.fina", "1" }, + { "uni06C7", "1" }, + { "uni06C7.fina", "1" }, + { "uni06C8", "1" }, + { "uni06C8.fina", "1" }, + { "uni06C9", "1" }, + { "uni06C9.fina", "1" }, + { "uni06CA", "1" }, + { "uni06CA.fina", "1" }, + { "uni06CB", "1" }, + { "uni06CB.fina", "1" }, + { "uni06CC", "1" }, + { "uni06CC.fina", "1" }, + { "uni06CC.init", "1" }, + { "uni06CC.medi", "1" }, + { "uni06CD", "1" }, + { "uni06CD.fina", "1" }, + { "uni06CE", "1" }, + { "uni06CE.fina", "1" }, + { "uni06CE.init", "1" }, + { "uni06CE.medi", "1" }, + { "uni06CF", "1" }, + { "uni06CF.fina", "1" }, + { "uni06D0", "1" }, + { "uni06D0.fina", "1" }, + { "uni06D0.init", "1" }, + { "uni06D0.medi", "1" }, + { "uni06D1", "1" }, + { "uni06D1.fina", "1" }, + { "uni06D1.init", "1" }, + { "uni06D1.medi", "1" }, + { "uni06D2", "1" }, + { "uni06D2.fina", "1" }, + { "uni06D3", "1" }, + { "uni06D3.fina", "1" }, + { "uni06D4", "1" }, + { "uni06D5", "1" }, + { "uni06D6", "3" }, + { "uni06D7", "3" }, + { "uni06D8", "3" }, + { "uni06D9", "3" }, + { "uni06DA", "3" }, + { "uni06DB", "3" }, + { "uni06DC", "3" }, + { "uni06DD", "1" }, + { "uni06DD.2", "1" }, + { "uni06DD.3", "1" }, + { "uni06DD.aat1", "1" }, + { "uni06DD.aat2", "1" }, + { "uni06DD.aat3", "1" }, + { "uni06DD.alt", "1" }, + { "uni06DD.alt.2", "1" }, + { "uni06DD.alt.3", "1" }, + { "uni06DD.alt.aat1", "1" }, + { "uni06DD.alt.aat2", "1" }, + { "uni06DD.alt.aat3", "1" }, + { "uni06DD.altB", "1" }, + { "uni06DD.altB.2", "1" }, + { "uni06DD.altB.3", "1" }, + { "uni06DD.altB.aat1", "1" }, + { "uni06DD.altB.aat2", "1" }, + { "uni06DD.altB.aat3", "1" }, + { "uni06DD.sp1", "1" }, + { "uni06DD.sp2", "1" }, + { "uni06DD.sp3", "1" }, + { "uni06DE", "1" }, + { "uni06DF", "3" }, + { "uni06E0", "3" }, + { "uni06E1", "3" }, + { "uni06E2", "3" }, + { "uni06E3", "3" }, + { "uni06E4", "3" }, + { "uni06E5", "3" }, + { "uni06E6", "3" }, + { "uni06E7", "3" }, + { "uni06E8", "3" }, + { "uni06E9", "1" }, + { "uni06EA", "3" }, + { "uni06EB", "3" }, + { "uni06EC", "3" }, + { "uni06ED", "3" }, + { "uni06EE", "1" }, + { "uni06EE.fina", "1" }, + { "uni06EF", "1" }, + { "uni06EF.fina", "1" }, + { "uni06F0", "1" }, + { "uni06F0.Medium", "3" }, + { "uni06F0.Small", "3" }, + { "uni06F1", "1" }, + { "uni06F1.Medium", "3" }, + { "uni06F1.Small", "3" }, + { "uni06F2", "1" }, + { "uni06F2.Medium", "3" }, + { "uni06F2.Small", "3" }, + { "uni06F3", "1" }, + { "uni06F3.Medium", "3" }, + { "uni06F3.Small", "3" }, + { "uni06F4", "1" }, + { "uni06F4.Medium", "3" }, + { "uni06F4.Medium.urdu", "3" }, + { "uni06F4.Small", "3" }, + { "uni06F4.Small.urdu", "3" }, + { "uni06F4.urdu", "1" }, + { "uni06F5", "1" }, + { "uni06F5.Medium", "3" }, + { "uni06F5.Small", "3" }, + { "uni06F6", "1" }, + { "uni06F6.Medium", "3" }, + { "uni06F6.Medium.urdu", "3" }, + { "uni06F6.Small", "3" }, + { "uni06F6.Small.urdu", "3" }, + { "uni06F6.urdu", "1" }, + { "uni06F7", "1" }, + { "uni06F7.Medium", "3" }, + { "uni06F7.Medium.urdu", "3" }, + { "uni06F7.Small", "3" }, + { "uni06F7.Small.urdu", "3" }, + { "uni06F7.urdu", "1" }, + { "uni06F8", "1" }, + { "uni06F8.Medium", "3" }, + { "uni06F8.Small", "3" }, + { "uni06F9", "1" }, + { "uni06F9.Medium", "3" }, + { "uni06F9.Small", "3" }, + { "uni06FA", "1" }, + { "uni06FA.fina", "1" }, + { "uni06FA.init", "1" }, + { "uni06FA.medi", "1" }, + { "uni06FB", "1" }, + { "uni06FB.fina", "1" }, + { "uni06FB.init", "1" }, + { "uni06FB.medi", "1" }, + { "uni06FC", "1" }, + { "uni06FC.fina", "1" }, + { "uni06FC.init", "1" }, + { "uni06FC.medi", "1" }, + { "uni06FD", "1" }, + { "uni06FE", "1" }, + { "uni06FF", "1" }, + { "uni06FF.fina", "1" }, + { "uni06FF.init", "1" }, + { "uni06FF.medi", "1" }, + { "uni0750", "1" }, + { "uni0750.fina", "1" }, + { "uni0750.init", "1" }, + { "uni0750.medi", "1" }, + { "uni0751", "1" }, + { "uni0751.fina", "1" }, + { "uni0751.init", "1" }, + { "uni0751.medi", "1" }, + { "uni0752", "1" }, + { "uni0752.fina", "1" }, + { "uni0752.init", "1" }, + { "uni0752.medi", "1" }, + { "uni0753", "1" }, + { "uni0753.fina", "1" }, + { "uni0753.init", "1" }, + { "uni0753.medi", "1" }, + { "uni0754", "1" }, + { "uni0754.fina", "1" }, + { "uni0754.init", "1" }, + { "uni0754.medi", "1" }, + { "uni0755", "1" }, + { "uni0755.fina", "1" }, + { "uni0755.init", "1" }, + { "uni0755.medi", "1" }, + { "uni0756", "1" }, + { "uni0756.fina", "1" }, + { "uni0756.init", "1" }, + { "uni0756.medi", "1" }, + { "uni0757", "1" }, + { "uni0757.fina", "1" }, + { "uni0757.init", "1" }, + { "uni0757.medi", "1" }, + { "uni0758", "1" }, + { "uni0758.fina", "1" }, + { "uni0758.init", "1" }, + { "uni0758.medi", "1" }, + { "uni0759", "1" }, + { "uni0759.fina", "1" }, + { "uni075A", "1" }, + { "uni075A.fina", "1" }, + { "uni075B", "1" }, + { "uni075B.fina", "1" }, + { "uni075C", "1" }, + { "uni075C.fina", "1" }, + { "uni075C.init", "1" }, + { "uni075C.medi", "1" }, + { "uni075D", "1" }, + { "uni075D.fina", "1" }, + { "uni075D.init", "1" }, + { "uni075D.medi", "1" }, + { "uni075E", "1" }, + { "uni075E.fina", "1" }, + { "uni075E.init", "1" }, + { "uni075E.medi", "1" }, + { "uni075F", "1" }, + { "uni075F.fina", "1" }, + { "uni075F.init", "1" }, + { "uni075F.medi", "1" }, + { "uni0760", "1" }, + { "uni0760.fina", "1" }, + { "uni0760.init", "1" }, + { "uni0760.medi", "1" }, + { "uni0761", "1" }, + { "uni0761.fina", "1" }, + { "uni0761.init", "1" }, + { "uni0761.medi", "1" }, + { "uni0762", "1" }, + { "uni0762.fina", "1" }, + { "uni0762.init", "1" }, + { "uni0762.medi", "1" }, + { "uni0763", "1" }, + { "uni0763.fina", "1" }, + { "uni0763.init", "1" }, + { "uni0763.medi", "1" }, + { "uni0764", "1" }, + { "uni0764.fina", "1" }, + { "uni0764.init", "1" }, + { "uni0764.medi", "1" }, + { "uni0765", "1" }, + { "uni0765.fina", "1" }, + { "uni0765.init", "1" }, + { "uni0765.medi", "1" }, + { "uni0766", "1" }, + { "uni0766.fina", "1" }, + { "uni0766.init", "1" }, + { "uni0766.medi", "1" }, + { "uni0767", "1" }, + { "uni0767.fina", "1" }, + { "uni0767.init", "1" }, + { "uni0767.medi", "1" }, + { "uni0768", "1" }, + { "uni0768.fina", "1" }, + { "uni0768.init", "1" }, + { "uni0768.medi", "1" }, + { "uni0769", "1" }, + { "uni0769.fina", "1" }, + { "uni0769.init", "1" }, + { "uni0769.medi", "1" }, + { "uni076A", "1" }, + { "uni076A.fina", "1" }, + { "uni076A.init", "1" }, + { "uni076A.init.preAlef", "1" }, + { "uni076A.medi", "1" }, + { "uni076A.medi.preAlef", "1" }, + { "uni076A0627", "2" }, + { "uni076A0627.fina", "2" }, + { "uni076B", "1" }, + { "uni076B.fina", "1" }, + { "uni076C", "1" }, + { "uni076C.fina", "1" }, + { "uni076D", "1" }, + { "uni076D.fina", "1" }, + { "uni076D.init", "1" }, + { "uni076D.medi", "1" }, + { "uni2000", "1" }, + { "uni2001", "1" }, + { "uni2002", "1" }, + { "uni2003", "1" }, + { "uni2004", "1" }, + { "uni2005", "1" }, + { "uni2006", "1" }, + { "uni2007", "1" }, + { "uni2008", "1" }, + { "uni2009", "1" }, + { "uni200A", "1" }, + { "uni200B", "1" }, + { "uni200C", "1" }, + { "uni200D", "1" }, + { "uni200E", "1" }, + { "uni200F", "1" }, + { "uni202A", "1" }, + { "uni202B", "1" }, + { "uni202C", "1" }, + { "uni202D", "1" }, + { "uni202E", "1" }, + { "uni2060", "1" }, + { "uni206C", "1" }, + { "uni206D", "1" }, + { "uni25CC", "1" }, + { "uniFD3E", "1" }, + { "uniFD3F", "1" }, + { "uniFDF2", "1" }, + { "uniFDFC", "1" }, + { "uniFEFF", "1" }, + { "v", "1" }, + { "w", "1" }, + { "x", "1" }, + { "y", "1" }, + { "z", "1" }, + { "zero", "1" }, + { "zeroMedium", "3" }, + { "zeroSmall", "3" }, + }, + }, + }; + + private static Object[][] ltAttachmentPoint = { + { GlyphDefinitionTable.GDEF_LOOKUP_TYPE_ATTACHMENT_POINT }, + // arab-001.ttx - not present + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + private static Object[][] ltLigatureCaret = { + { GlyphDefinitionTable.GDEF_LOOKUP_TYPE_LIGATURE_CARET }, + // arab-001.ttx - not present + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + private static Object[][] ltMarkAttachment = { + { GlyphDefinitionTable.GDEF_LOOKUP_TYPE_MARK_ATTACHMENT }, + // arab-001.ttx - not present + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + @Test + public void testGDEFGlyphClass() throws Exception { + performLookups ( ltGlyphClass ); + } + + @Test + public void testGDEFAttachmentPoint() throws Exception { + performLookups ( ltAttachmentPoint ); + } + + @Test + public void testGDEFLigatureCaret() throws Exception { + performLookups ( ltLigatureCaret ); + } + + @Test + public void testGDEFMarkAttachment() throws Exception { + performLookups ( ltMarkAttachment ); + } + + /** + * Perform lookups on all test data in test specification TS. + * @param ts test specification + */ + private void performLookups ( Object[][] ts ) { + assert ts.length > 0; + Object[] tp = ts[0]; + for ( int i = 1; i < ts.length; i++ ) { + performLookups ( tp, ts[i] ); + } + } + + /** + * Perform lookups on all test data TD using test parameters TP. + * @param tp test parameters + * @param td test data + */ + private void performLookups ( Object[] tp, Object[] td ) { + assert tp.length > 0; + if ( td.length > 1 ) { + String fid = (String) td[0]; + String lid = (String) td[1]; + TTXFile tf = findTTX ( fid ); + assertTrue ( tf != null ); + GlyphDefinitionTable gdef = tf.getGDEF(); + assertTrue ( gdef != null ); + String[][] tia = (String[][]) td[2]; + switch ( (int) ( (Integer) tp[0] ) ) { + case GlyphDefinitionTable.GDEF_LOOKUP_TYPE_GLYPH_CLASS: + performGlyphClassLookups ( tf, lid, tia ); + break; + case GlyphDefinitionTable.GDEF_LOOKUP_TYPE_ATTACHMENT_POINT: + performAttachmentPointLookups ( tf, lid, tia ); + break; + case GlyphDefinitionTable.GDEF_LOOKUP_TYPE_LIGATURE_CARET: + performLigatureCaretLookups ( tf, lid, tia ); + break; + case GlyphDefinitionTable.GDEF_LOOKUP_TYPE_MARK_ATTACHMENT: + performMarkAttachmentLookups ( tf, lid, tia ); + break; + default: + assertTrue ( "bad lookup type", false ); + break; + } + } + } + + private void performGlyphClassLookups ( TTXFile tf, String lid, String[][] tia ) { + GlyphDefinitionTable gdef = tf.getGDEF(); + assert gdef != null; + for ( String[] ti : tia ) { + assert ti != null; + assert ti.length > 1; + String gn = ti[0]; + assert gn != null; + String cn = ti[1]; + assert cn != null; + int g = tf.getGlyph ( gn ); + assertTrue ( g >= 0 ); + int oc = Integer.parseInt ( cn ); + int tc = gdef.getGlyphClass ( g ); + assertEquals ( "bad glyph class for glyph \'" + gn + "\', gid(" + g + ")", oc, tc ); + } + } + + private void performAttachmentPointLookups ( TTXFile tf, String lid, String[][] tia ) { + // not yet supported by GDEF or test TTX files + } + + private void performLigatureCaretLookups ( TTXFile tf, String lid, String[][] tia ) { + // not yet supported by GDEF or test TTX files + } + + private void performMarkAttachmentLookups ( TTXFile tf, String lid, String[][] tia ) { + // not yet supported by GDEF or test TTX files + } + + private String findTTXPath ( String fid ) { + for ( String[] fs : ttxFonts ) { + if ( ( fs != null ) && ( fs.length > 1 ) ) { + if ( fs[0].equals ( fid ) ) { + return ttxFilesRoot + File.separator + fs[1]; + } + } + } + return null; + } + + private TTXFile findTTX ( String fid ) { + String pn = findTTXPath ( fid ); + assertTrue ( pn != null ); + try { + TTXFile tf = TTXFile.getFromCache ( pn ); + return tf; + } catch ( Exception e ) { + fail ( e.getMessage() ); + return null; + } + } + +} \ No newline at end of file
diff --git a/test/java/org/apache/fop/complexscripts/gpos/GPOSTestCase.java b/test/java/org/apache/fop/complexscripts/gpos/GPOSTestCase.java new file mode 100644 index 0000000..0a8e37e --- /dev/null +++ b/test/java/org/apache/fop/complexscripts/gpos/GPOSTestCase.java
@@ -0,0 +1,475 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.complexscripts.gpos; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import org.apache.fop.complexscripts.util.TTXFile; +import org.apache.fop.fonts.GlyphContextTester; +import org.apache.fop.fonts.GlyphSequence; +import org.apache.fop.fonts.GlyphSubtable; +import org.apache.fop.fonts.GlyphPositioningSubtable; +import org.apache.fop.fonts.GlyphPositioningTable; +import org.apache.fop.fonts.GlyphTable.LookupSpec; +import org.apache.fop.fonts.GlyphTable.LookupTable; +import org.apache.fop.fonts.ScriptContextTester; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class GPOSTestCase implements ScriptContextTester, GlyphContextTester { + + private static String ttxFilesRoot = "test/resources/complexscripts"; + + private static String[][] ttxFonts = { + { "f0", "arab/ttx/arab-001.ttx" }, // simplified arabic + { "f1", "arab/ttx/arab-002.ttx" }, // traditional arabic + { "f2", "arab/ttx/arab-003.ttx" }, // lateef + { "f3", "arab/ttx/arab-004.ttx" }, // scheherazade + }; + + private static Object[][] ltSingle = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_SINGLE }, + // arab-001.ttx + { "f0", "lu1", "arab", "dflt", "mark", + new Object[][] { + { + new String[] { "fathatan" }, + new int[][] { + { 0, 0, -412, 0 } + } + }, + { + new String[] { "fatha" }, + new int[][] { + { 0, 0, -410, 0 } + } + }, + }, + }, + { "f0", "lu9", "arab", "*", "*", + new Object[][] { + { + new String[] { "fathatan" }, + new int[][] { + { 50, 0, 0, 0 } + } + }, + { + new String[] { "fatha" }, + new int[][] { + { 50, 0, 0, 0 } + } + }, + }, + }, + { "f0", "lu10", "arab", "*", "*", + new Object[][] { + { + new String[] { "kasratan" }, + new int[][] { + { 0, -200, 0, 0 } + } + }, + { + new String[] { "kasra" }, + new int[][] { + { 0, -200, 0, 0 } + } + }, + }, + }, + { "f0", "lu11", "arab", "*", "*", + new Object[][] { + { + new String[] { "kasratan" }, + new int[][] { + { 0, -300, 0, 0 } + } + }, + { + new String[] { "kasra" }, + new int[][] { + { 0, -300, 0, 0 } + } + }, + { + new String[] { "uni0655" }, + new int[][] { + { 0, -250, 0, 0 } + } + }, + }, + }, + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + private static Object[][] ltPair = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_PAIR }, + // arab-001.ttx + { "f0", "lu0", "arab", "dflt", "kern", + new Object[][] { + { + new String[] { "wawwithhamzaabove", "hamza" }, + new int[][] { + { -300, 0, -300, 0 }, { 0, 0, 0, 0 } + } + }, + { + new String[] { "reh", "alefwithmaddaabove" }, + new int[][] { + { -500, 0, -500, 0 }, { 0, 0, 0, 0 } + } + }, + { + new String[] { "zain", "zain" }, + new int[][] { + { -190, 0, -190, 0 }, { 0, 0, 0, 0 } + } + }, + { + new String[] { "waw", "uni0649.init" }, + new int[][] { + { -145, 0, -145, 0 }, { 0, 0, 0, 0 } + } + }, + { + new String[] { "jeh", "uni06A5.init" }, + new int[][] { + { -345, 0, -345, 0 }, { 0, 0, 0, 0 } + } + }, + }, + }, + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + private static Object[][] ltCursive = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_CURSIVE }, + // arab-001.ttx - none used + // arab-002.ttx - none used + // arab-003.ttx - maybe add tests + { "f2", "lu0", "arab", "dflt", "curs", + new Object[][] { + { + new String[] { "uni0644.init.preAlef", "uni0622.fina.postLamIni" }, + new int[][] { + // { 576, 0, 0, 0 }, { 0, 0, 0, 0 } - with zero widths + { 295, 0, 0, 0 }, { 0, 0, 0, 0 } + } + }, + { + new String[] { "uni0644.medi.preAlef", "uni0622.fina.postLamMed" }, + new int[][] { + // { 550, 0, 0, 0 }, { 0, 0, 0, 0 } - with zero widths + { 282, 0, 0, 0 }, { 0, 0, 0, 0 } + } + }, + }, + }, + // arab-004.ttx - none used + }; + + private static Object[][] ltMarkToBase = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_MARK_TO_BASE }, + // arab-001.ttx - maybe add tests + // arab-002.ttx + { "f1", "lu4", "arab", "dflt", "mark", + new Object[][] { + { + new String[] { "beh", "fatha" }, + new int[][] { + // { 0, 0, 0, 0 }, { 266, -672, 0, 0 } - with zero widths + { 0, 0, 0, 0 }, { 266, -672, -199, 0 } + } + }, + { + new String[] { "alefwithhamzabelow", "kasra" }, + new int[][] { + // { 0, 0, 0, 0 }, { -48, 344, 0, 0 } - with zero widths + { 0, 0, 0, 0 }, { -48, 344, -199, 0 } + } + }, + }, + }, + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + private static Object[][] ltMarkToLigature = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_MARK_TO_LIGATURE }, + // arab-001.ttx + { "f0", "lu4", "arab", "dflt", "mark", + new Object[][] { + { + new String[] { "rayaleflam", "fatha", "fatha", "fatha", "fatha" }, + new int[][] { + { 0, 0, 0, 0 }, { 1260, -1150, 0, 0 }, { 910, -1020, 0, 0 }, { 590, -630, 0, 0 }, { 110, -720, 0, 0 } + } + }, + { + new String[] { "rayaleflam", "kasra", "kasra", "kasra", "kasra" }, + new int[][] { + { 0, 0, 0, 0 }, { 1110 , 225, 0, 0 }, { 760, 275, 0, 0 }, { 520, 475, 0, 0 }, { 110, 425, 0, 0 } + } + }, + }, + }, + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx - maybe add tests + }; + + private static Object[][] ltMarkToMark = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_MARK_TO_MARK }, + // arab-001.ttx - maybe add tests + // arab-002.ttx - maybe add tests + // arab-003.ttx - maybe add tests + // arab-004.ttx + { "f3", "lu3", "arab", "dflt", "mkmk", + new Object[][] { + { + new String[] { "uni064F", "uni064E" }, + new int[][] { + { 0, 0, 0, 0 }, { -15, 495, 0, 0 } + } + }, + { + new String[] { "uni0651", "uni0670" }, + new int[][] { + { 0, 0, 0, 0 }, { -30, 705, 0, 0 } + } + }, + }, + }, + }; + + private static Object[][] ltContextual = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_CONTEXTUAL }, + // arab-001.ttx - none used + // arab-002.ttx - none used + // arab-003.ttx - none used + // arab-004.ttx - none used + }; + + private static Object[][] ltChainedContextual = { + { GlyphPositioningTable.GPOS_LOOKUP_TYPE_CHAINED_CONTEXTUAL }, + // arab-001.ttx + { "f0", "lu3", "arab", "dflt", "mark", + new Object[][] { + { + new String[] { "behmedial", "fatha", "lam" }, + new int[][] { + { 0, 0, 0, 0 }, { 50, 0, 0, 0 }, { 0, 0, 0, 0 } + } + }, + }, + }, + // arab-002.ttx + { "f1", "lu6", "arab", "dflt", "mark", + new Object[][] { + { + new String[] { "zain", "fatha", "kafinitial" }, + new int[][] { + { 0, 0, 0, 0 }, { 0, 250, 0, 0 }, { 0, 0, 0, 0 } + } + }, + }, + }, + // arab-003.ttx - none used + // arab-004.ttx + { "f3", "lu5", "arab", "dflt", "mark", + new Object[][] { + { + new String[] { "uni064D", "uni0622.fina.postLamIni", "uni0650" }, + new int[][] { + { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 55, 424, 0, 0 } + } + }, + }, + }, + }; + + @Test + public void testGPOSSingle() throws Exception { + performPositioning ( ltSingle ); + } + + @Test + public void testGPOSPair() throws Exception { + performPositioning ( ltPair ); + } + + @Test + public void testGPOSCursive() throws Exception { + performPositioning ( ltCursive ); + } + + @Test + public void testGPOSMarkToBase() throws Exception { + performPositioning ( ltMarkToBase ); + } + + @Test + public void testGPOSMarkToLigature() throws Exception { + performPositioning ( ltMarkToLigature ); + } + + @Test + public void testGPOSMarkToMark() throws Exception { + performPositioning ( ltMarkToMark ); + } + + @Test + public void testGPOSContextual() throws Exception { + performPositioning ( ltContextual ); + } + + @Test + public void testGPOSChainedContextual() throws Exception { + performPositioning ( ltChainedContextual ); + } + + /** + * Perform positioning on all test data in test specification TS. + * @param ts test specification + */ + private void performPositioning ( Object[][] ts ) { + assert ts.length > 0; + Object[] tp = ts[0]; + for ( int i = 1; i < ts.length; i++ ) { + performPositioning ( tp, ts[i] ); + } + } + + /** + * Perform positioning on all test data TD using test parameters TP. + * @param tp test parameters + * @param td test data + */ + private void performPositioning ( Object[] tp, Object[] td ) { + assert tp.length > 0; + if ( td.length > 5 ) { + String fid = (String) td[0]; + String lid = (String) td[1]; + String script = (String) td[2]; + String language = (String) td[3]; + String feature = (String) td[4]; + TTXFile tf = findTTX ( fid ); + assertTrue ( tf != null ); + GlyphPositioningTable gpos = tf.getGPOS(); + assertTrue ( gpos != null ); + GlyphPositioningSubtable[] sta = findGPOSSubtables ( gpos, script, language, feature, lid ); + assertTrue ( sta != null ); + assertTrue ( sta.length > 0 ); + ScriptContextTester sct = findScriptContextTester ( script, language, feature ); + Object[][] tia = (Object[][]) td[5]; // test instance array + for ( Object[] ti : tia ) { // test instance + if ( ti != null ) { + if ( ti.length > 0 ) { // must have at least input glyphs + String[] igia = (String[]) ti[0]; // input glyph id array + int[][] ogpa = (int[][]) ti[1]; // output glyph positioning array + GlyphSequence igs = tf.getGlyphSequence ( igia ); + int[] widths = tf.getWidths(); + int[][] tgpa = new int [ igia.length ] [ 4 ]; + boolean adjusted = GlyphPositioningSubtable.position ( igs, script, language, feature, 1000, sta, widths, tgpa, sct ); + assertTrue ( adjusted ); + assertSamePositions ( ogpa, tgpa ); + } + } + } + } + } + + private String findTTXPath ( String fid ) { + for ( String[] fs : ttxFonts ) { + if ( ( fs != null ) && ( fs.length > 1 ) ) { + if ( fs[0].equals ( fid ) ) { + return ttxFilesRoot + File.separator + fs[1]; + } + } + } + return null; + } + + private TTXFile findTTX ( String fid ) { + String pn = findTTXPath ( fid ); + assertTrue ( pn != null ); + try { + TTXFile tf = TTXFile.getFromCache ( pn ); + return tf; + } catch ( Exception e ) { + fail ( e.getMessage() ); + return null; + } + } + + private GlyphPositioningSubtable[] findGPOSSubtables ( GlyphPositioningTable gpos, String script, String language, String feature, String lid ) { + LookupTable lt = gpos.getLookupTable ( lid ); + if ( lt != null ) { + return (GlyphPositioningSubtable[]) lt.getSubtables(); + } else { + return null; + } + } + + private ScriptContextTester findScriptContextTester ( String script, String language, String feature ) { + return this; + } + + @Override + public GlyphContextTester getTester ( String feature ) { + return this; + } + + @Override + public boolean test ( String script, String language, String feature, GlyphSequence gs, int index ) { + return true; + } + + private void assertSamePositions ( int[][] pa1, int[][] pa2 ) { + assertNotNull ( pa1 ); + assertNotNull ( pa2 ); + assertEquals ( "unequal adjustment count", pa1.length, pa2.length ); + for ( int i = 0; i < pa1.length; i++ ) { + int[] a1 = pa1 [ i ]; + int[] a2 = pa2 [ i ]; + assertNotNull ( a1 ); + assertNotNull ( a2 ); + assertEquals ( "bad adjustment array length", 4, a1.length ); + assertEquals ( "bad adjustment array length", 4, a2.length ); + for ( int k = 0; k < a1.length; k++ ) { + int p1 = a1[k]; + int p2 = a2[k]; + assertEquals ( "bad adjustment", p1, p2 ); + } + } + } +}
diff --git a/test/java/org/apache/fop/complexscripts/gsub/GSUBTestCase.java b/test/java/org/apache/fop/complexscripts/gsub/GSUBTestCase.java new file mode 100644 index 0000000..8921e21 --- /dev/null +++ b/test/java/org/apache/fop/complexscripts/gsub/GSUBTestCase.java
@@ -0,0 +1,2268 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.complexscripts.gsub; + +import java.io.File; +import java.nio.IntBuffer; +import java.util.List; +import java.util.Map; + +import org.apache.fop.complexscripts.util.TTXFile; +import org.apache.fop.fonts.GlyphContextTester; +import org.apache.fop.fonts.GlyphSequence; +import org.apache.fop.fonts.GlyphSubtable; +import org.apache.fop.fonts.GlyphSubstitutionSubtable; +import org.apache.fop.fonts.GlyphSubstitutionTable; +import org.apache.fop.fonts.GlyphTable.LookupSpec; +import org.apache.fop.fonts.GlyphTable.LookupTable; +import org.apache.fop.fonts.ScriptContextTester; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class GSUBTestCase implements ScriptContextTester, GlyphContextTester { + + private static String ttxFilesRoot = "test/resources/complexscripts"; + + private static String[][] ttxFonts = { + { "f0", "arab/ttx/arab-001.ttx" }, // simplified arabic + { "f1", "arab/ttx/arab-002.ttx" }, // traditional arabic + { "f2", "arab/ttx/arab-003.ttx" }, // lateef + { "f3", "arab/ttx/arab-004.ttx" }, // scheherazade + }; + + private static Object[][] ltSingle = { + { GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_SINGLE }, + // arab-001.ttx + { "f0", "lu2", "arab", "dflt", "isol", + new String[][][] { + { { "ainisolated" }, { "ain" } }, + { { "alefmaksuraisolated" }, { "alefmaksura" } }, + { { "behisolated" }, { "beh" } }, + { { "dadisolated" }, { "dad" } }, + { { "dalisolated" }, { "dal" } }, + { { "farsiyehisolated" }, { "farsiyeh" } }, + { { "fehisolated" }, { "feh" } }, + { { "gafisolated" }, { "gaf" } }, + { { "ghainisolated" }, { "ghain" } }, + { { "hahisolated" }, { "hah" } }, + { { "jeemisolated" }, { "jeem" } }, + { { "jehisolated" }, { "jeh" } }, + { { "kafisolated" }, { "arabickaf" } }, + { { "kehehisolated" }, { "keheh" } }, + { { "khahisolated" }, { "khah" } }, + { { "meemisolated" }, { "meem" } }, + { { "noonisolated" }, { "noon" } }, + { { "pehisolated" }, { "peh" } }, + { { "qafisolated" }, { "qaf" } }, + { { "rehisolated" }, { "reh" } }, + { { "sadisolated" }, { "sad" } }, + { { "seenisolated" }, { "seen" } }, + { { "sheenisolated" }, { "sheen" } }, + { { "tahisolated" }, { "tah" } }, + { { "tchehisolated" }, { "tcheh" } }, + { { "tehisolated" }, { "teh" } }, + { { "tehmarbutaisolated" }, { "tehmarbuta" } }, + { { "thalisolated" }, { "thal" } }, + { { "thehisolated" }, { "theh" } }, + { { "vehisolated" }, { "veh" } }, + { { "wawisolated" }, { "waw" } }, + { { "yehisolated" }, { "yeh" } }, + { { "yehwithhamzaaboveisolated" }, { "yehwithhamzaabove" } }, + { { "zahisolated" }, { "zah" } }, + { { "zainisolated" }, { "zain" } }, + }, + }, + { "f0", "lu4", "arab", "dflt", "fina", + new String[][][] { + { { "ain" }, { "ainfinal" } }, + { { "alefmaksura" }, { "alefmaksurafinal" } }, + { { "alefwasla" }, { "alefwaslafinal" } }, + { { "alefwithhamzaabove" }, { "alefwithhamzaabovefinal" } }, + { { "alefwithhamzabelow" }, { "alefwithhamzabelowfinal" } }, + { { "alefwithmaddaabove" }, { "alefwithmaddaabovefinal" } }, + { { "arabicae" }, { "hehfinal" } }, + { { "arabicalef" }, { "aleffinal" } }, + { { "arabickaf" }, { "arabickaf" } }, + { { "beh" }, { "beh" } }, + { { "dad" }, { "dad" } }, + { { "dal" }, { "dal" } }, + { { "farsiyeh" }, { "farsiyehfinal" } }, + { { "feh" }, { "feh" } }, + { { "gaf" }, { "gaffinal" } }, + { { "ghain" }, { "ghainfinal" } }, + { { "hah" }, { "hahfinal" } }, + { { "heh" }, { "hehfinal" } }, + { { "jeem" }, { "jeemfinal" } }, + { { "jeh" }, { "jeh" } }, + { { "keheh" }, { "kehehfinal" } }, + { { "khah" }, { "khahfinal" } }, + { { "lam" }, { "lam" } }, + { { "meem" }, { "meem" } }, + { { "noon" }, { "noon" } }, + { { "peh" }, { "peh" } }, + { { "qaf" }, { "qaf" } }, + { { "reh" }, { "reh" } }, + { { "sad" }, { "sad" } }, + { { "seen" }, { "seen" } }, + { { "sheen" }, { "sheen" } }, + { { "tah" }, { "tah" } }, + { { "tcheh" }, { "tchehfinal" } }, + { { "teh" }, { "teh" } }, + { { "tehmarbuta" }, { "tehmarbutafinal" } }, + { { "thal" }, { "thal" } }, + { { "theh" }, { "theh" } }, + { { "veh" }, { "veh" } }, + { { "waw" }, { "waw" } }, + { { "wawwithhamzaabove" }, { "wawwithhamzaabove" } }, + { { "yeh" }, { "yehfinal" } }, + { { "yehwithhamzaabove" }, { "yehwithhamzaabovefinal" } }, + { { "zah" }, { "zah" } }, + { { "zain" }, { "zain" } }, + } + }, + { "f0", "lu5", "arab", "dflt", "init", + new String[][][] { + { { "ain" }, { "aininitial" } }, + { { "alefmaksura" }, { "uni0649.init" } }, + { { "arabickaf" }, { "kafmedial" } }, + { { "beh" }, { "behmedial" } }, + { { "dad" }, { "dadmedial" } }, + { { "farsiyeh" }, { "yehmedial" } }, + { { "feh" }, { "fehinitial" } }, + { { "gaf" }, { "gafinitial" } }, + { { "ghain" }, { "ghaininitial" } }, + { { "hah" }, { "hahmedial" } }, + { { "heh" }, { "hehinitial" } }, + { { "jeem" }, { "jeemmedial" } }, + { { "keheh" }, { "kehehinitial" } }, + { { "khah" }, { "khahmedial" } }, + { { "lam" }, { "lamisolated" } }, + { { "meem" }, { "meemmedial" } }, + { { "noon" }, { "noonmedial" } }, + { { "peh" }, { "pehmedial" } }, + { { "qaf" }, { "qafinitial" } }, + { { "sad" }, { "sadmedial" } }, + { { "seen" }, { "seenmedial" } }, + { { "sheen" }, { "sheenmedial" } }, + { { "tah" }, { "tah" } }, + { { "tcheh" }, { "tchehmedial" } }, + { { "teh" }, { "tehmedial" } }, + { { "theh" }, { "thehmedial" } }, + { { "veh" }, { "uni06A5.init" } }, + { { "yeh" }, { "yehmedial" } }, + { { "yehwithhamzaabove" }, { "yehwithhamzaabovemedial" } }, + { { "zah" }, { "zah" } }, + } + }, + { "f0", "lu6", "arab", "dflt", "medi", + new String[][][] { + { { "ain" }, { "ainmedial" } }, + { { "alefmaksura" }, { "uni0649.init" } }, + { { "arabickaf" }, { "kafmedial" } }, + { { "beh" }, { "behmedial" } }, + { { "dad" }, { "dadmedial" } }, + { { "farsiyeh" }, { "yehmedial" } }, + { { "feh" }, { "fehmedial" } }, + { { "gaf" }, { "gafmedial" } }, + { { "ghain" }, { "ghainmedial" } }, + { { "hah" }, { "hahmedial" } }, + { { "heh" }, { "hehmedial" } }, + { { "jeem" }, { "jeemmedial" } }, + { { "keheh" }, { "kehehmedial" } }, + { { "khah" }, { "khahmedial" } }, + { { "lam" }, { "lammedial" } }, + { { "meem" }, { "meemmedial" } }, + { { "noon" }, { "noonmedial" } }, + { { "peh" }, { "pehmedial" } }, + { { "qaf" }, { "qafmedial" } }, + { { "sad" }, { "sadmedial" } }, + { { "seen" }, { "seenmedial" } }, + { { "sheen" }, { "sheenmedial" } }, + { { "tah" }, { "tah" } }, + { { "tcheh" }, { "tchehmedial" } }, + { { "teh" }, { "tehmedial" } }, + { { "theh" }, { "thehmedial" } }, + { { "veh" }, { "vehmedial" } }, + { { "yeh" }, { "yehmedial" } }, + { { "yehwithhamzaabove" }, { "yehwithhamzaabovemedial" } }, + { { "zah" }, { "zah" } }, + } + }, + // arab-002.ttx + { "f1", "lu1", "arab", "*", "isol", + new String[][][] { + { { "ainisolated" }, { "ain" } }, + { { "alefmaksuraisolated" }, { "alefmaksura" } }, + { { "behisolated" }, { "beh" } }, + { { "dadisolated" }, { "dad" } }, + { { "dalisolated" }, { "dal" } }, + { { "farsiyehisolated" }, { "farsiyeh" } }, + { { "fehisolated" }, { "feh" } }, + { { "gafisolated" }, { "gaf" } }, + { { "ghainisolated" }, { "ghain" } }, + { { "hahisolated" }, { "hah" } }, + { { "jeemisolated" }, { "jeem" } }, + { { "jehisolated" }, { "jeh" } }, + { { "kafisolated" }, { "arabickaf" } }, + { { "kehehisolated" }, { "keheh" } }, + { { "khahisolated" }, { "khah" } }, + { { "meemisolated" }, { "meem" } }, + { { "noonisolated" }, { "noon" } }, + { { "pehisolated" }, { "peh" } }, + { { "qafisolated" }, { "qaf" } }, + { { "rehisolated" }, { "reh" } }, + { { "sadisolated" }, { "sad" } }, + { { "seenisolated" }, { "seen" } }, + { { "sheenisolated" }, { "sheen" } }, + { { "tahisolated" }, { "tah" } }, + { { "tchehisolated" }, { "tcheh" } }, + { { "tehisolated" }, { "teh" } }, + { { "tehmarbutaisolated" }, { "tehmarbuta" } }, + { { "thalisolated" }, { "thal" } }, + { { "thehisolated" }, { "theh" } }, + { { "vehisolated" }, { "veh" } }, + { { "wawisolated" }, { "waw" } }, + { { "yehisolated" }, { "yeh" } }, + { { "yehwithhamzaaboveisolated" }, { "yehwithhamzaabove" } }, + { { "zahisolated" }, { "zah" } }, + { { "zainisolated" }, { "zain" } }, + } + }, + { "f1", "lu3", "arab", "*", "fina", + new String[][][] { + { { "ain" }, { "ainfinal" } }, + { { "alefmaksura" }, { "alefmaksurafinal" } }, + { { "alefwasla" }, { "alefwaslafinal" } }, + { { "alefwithhamzaabove" }, { "alefwithhamzaabovefinal" } }, + { { "alefwithhamzabelow" }, { "alefwithhamzabelowfinal" } }, + { { "alefwithmaddaabove" }, { "alefwithmaddaabovefinal" } }, + { { "arabicae" }, { "hehfinal" } }, + { { "arabicalef" }, { "aleffinal" } }, + { { "arabickaf" }, { "arabickaffinal" } }, + { { "beh" }, { "behfinal" } }, + { { "dad" }, { "dadfinal" } }, + { { "dal" }, { "dalfinal" } }, + { { "farsiyeh" }, { "farsiyehfinal" } }, + { { "feh" }, { "fehfinal" } }, + { { "gaf" }, { "gaffinal" } }, + { { "ghain" }, { "ghainfinal" } }, + { { "hah" }, { "hahfinal" } }, + { { "heh" }, { "hehfinal" } }, + { { "jeem" }, { "jeemfinal" } }, + { { "jeh" }, { "jehfinal" } }, + { { "keheh" }, { "kehehfinal" } }, + { { "khah" }, { "khahfinal" } }, + { { "lam" }, { "lamfinal" } }, + { { "meem" }, { "meemfinal" } }, + { { "noon" }, { "noonfinal" } }, + { { "peh" }, { "pehfinal" } }, + { { "qaf" }, { "qaffinal" } }, + { { "reh" }, { "rehfinal" } }, + { { "sad" }, { "sadfinal" } }, + { { "seen" }, { "seenfinal" } }, + { { "sheen" }, { "sheenfinal" } }, + { { "tah" }, { "tahfinal" } }, + { { "tcheh" }, { "tchehfinal" } }, + { { "teh" }, { "tehfinal" } }, + { { "tehmarbuta" }, { "tehmarbutafinal" } }, + { { "thal" }, { "thalfinal" } }, + { { "theh" }, { "thehfinal" } }, + { { "veh" }, { "vehfinal" } }, + { { "waw" }, { "wawfinal" } }, + { { "wawwithhamzaabove" }, { "wawwithhamzaabovefinal" } }, + { { "yeh" }, { "yehfinal" } }, + { { "yehwithhamzaabove" }, { "yehwithhamzaabovefinal" } }, + { { "zah" }, { "zahfinal" } }, + { { "zain" }, { "zainfinal" } }, + } + }, + { "f1", "lu4", "arab", "*", "init", + new String[][][] { + { { "ain" }, { "aininitial" } }, + { { "alefmaksura" }, { "uni0649.init" } }, + { { "arabickaf" }, { "kafinitial" } }, + { { "beh" }, { "behinitial" } }, + { { "dad" }, { "dadinitial" } }, + { { "farsiyeh" }, { "yehinitial" } }, + { { "feh" }, { "fehinitial" } }, + { { "gaf" }, { "gafinitial" } }, + { { "ghain" }, { "ghaininitial" } }, + { { "hah" }, { "hahinitial" } }, + { { "heh" }, { "hehinitial" } }, + { { "jeem" }, { "jeeminitial" } }, + { { "keheh" }, { "kehehinitial" } }, + { { "khah" }, { "khahinitial" } }, + { { "lam" }, { "laminitial" } }, + { { "meem" }, { "meeminitial" } }, + { { "noon" }, { "nooninitial" } }, + { { "peh" }, { "pehinitial" } }, + { { "qaf" }, { "qafinitial" } }, + { { "sad" }, { "sadinitial" } }, + { { "seen" }, { "seeninitial" } }, + { { "sheen" }, { "sheeninitial" } }, + { { "tah" }, { "tahinitial" } }, + { { "tcheh" }, { "tchehinitial" } }, + { { "teh" }, { "tehinitial" } }, + { { "theh" }, { "thehinitial" } }, + { { "veh" }, { "vehinitial" } }, + { { "yeh" }, { "yehinitial" } }, + { { "yehwithhamzaabove" }, { "yehwithhamzaaboveinitial" } }, + { { "zah" }, { "zahinitial" } }, + } + }, + { "f1", "lu5", "arab", "*", "medi", + new String[][][] { + { { "ain" }, { "ainmedial" } }, + { { "alefmaksura" }, { "uni0649.medi" } }, + { { "arabickaf" }, { "kafmedial" } }, + { { "beh" }, { "behmedial" } }, + { { "dad" }, { "dadmedial" } }, + { { "farsiyeh" }, { "yehmedial" } }, + { { "feh" }, { "fehmedial" } }, + { { "gaf" }, { "gafmedial" } }, + { { "ghain" }, { "ghainmedial" } }, + { { "hah" }, { "hahmedial" } }, + { { "heh" }, { "hehmedial" } }, + { { "jeem" }, { "jeemmedial" } }, + { { "keheh" }, { "kehehmedial" } }, + { { "khah" }, { "khahmedial" } }, + { { "lam" }, { "lammedial" } }, + { { "meem" }, { "meemmedial" } }, + { { "noon" }, { "noonmedial" } }, + { { "peh" }, { "pehmedial" } }, + { { "qaf" }, { "qafmedial" } }, + { { "sad" }, { "sadmedial" } }, + { { "seen" }, { "seenmedial" } }, + { { "sheen" }, { "sheenmedial" } }, + { { "tah" }, { "tahmedial" } }, + { { "tcheh" }, { "tchehmedial" } }, + { { "teh" }, { "tehmedial" } }, + { { "theh" }, { "thehmedial" } }, + { { "veh" }, { "vehmedial" } }, + { { "yeh" }, { "yehmedial" } }, + { { "yehwithhamzaabove" }, { "yehwithhamzaabovemedial" } }, + { { "zah" }, { "zahmedial" } }, + } + }, + { "f1", "lu13", "arab", "*", "*", + new String[][][] { + { { "heh" }, { "hehisolated" } }, + } + }, + // arab-003.ttx + { "f2", "lu1", "arab", "dflt", "init", + new String[][][] { + { { "absJeemRetro1" }, { "absJeemRetro1Ini" } }, + { { "absJeemRetro2" }, { "absJeemRetro2Ini" } }, + { { "absJeemRetro3" }, { "absJeemRetro3Ini" } }, + { { "absLamRetro" }, { "absLamRetroIni" } }, + { { "absSheenRetro1" }, { "absSheenRetro1Ini" } }, + { { "absSheenRetro2" }, { "absSheenRetro2Ini" } }, + { { "absTchehRetro1" }, { "absTchehRetro1Ini" } }, + { { "absTchehRetro2" }, { "absTchehRetro2Ini" } }, + { { "uni0626" }, { "uni0626.init" } }, + { { "uni0628" }, { "uni0628.init" } }, + { { "uni062A" }, { "uni062A.init" } }, + { { "uni062B" }, { "uni062B.init" } }, + { { "uni062C" }, { "uni062C.init" } }, + { { "uni062D" }, { "uni062D.init" } }, + { { "uni062E" }, { "uni062E.init" } }, + { { "uni0633" }, { "uni0633.init" } }, + { { "uni0634" }, { "uni0634.init" } }, + { { "uni0635" }, { "uni0635.init" } }, + { { "uni0636" }, { "uni0636.init" } }, + { { "uni0637" }, { "uni0637.init" } }, + { { "uni0638" }, { "uni0638.init" } }, + { { "uni0639" }, { "uni0639.init" } }, + { { "uni063A" }, { "uni063A.init" } }, + { { "uni0641" }, { "uni0641.init" } }, + { { "uni0642" }, { "uni0642.init" } }, + { { "uni0643" }, { "uni0643.init" } }, + { { "uni0644" }, { "uni0644.init" } }, + { { "uni0645" }, { "uni0645.init" } }, + { { "uni0646" }, { "uni0646.init" } }, + { { "uni0647" }, { "uni0647.init" } }, + { { "uni0649" }, { "uni0649.init" } }, + { { "uni064A" }, { "uni064A.init" } }, + { { "uni064A.noDots" }, { "uni064A.init.noDots" } }, + { { "uni066E" }, { "uni066E.init" } }, + { { "uni066F" }, { "uni066F.init" } }, + { { "uni0678" }, { "uni0678.init" } }, + { { "uni0679" }, { "uni0679.init" } }, + { { "uni067A" }, { "uni067A.init" } }, + { { "uni067B" }, { "uni067B.init" } }, + { { "uni067C" }, { "uni067C.init" } }, + { { "uni067D" }, { "uni067D.init" } }, + { { "uni067E" }, { "uni067E.init" } }, + { { "uni067F" }, { "uni067F.init" } }, + { { "uni0680" }, { "uni0680.init" } }, + { { "uni0681" }, { "uni0681.init" } }, + { { "uni0682" }, { "uni0682.init" } }, + { { "uni0683" }, { "uni0683.init" } }, + { { "uni0684" }, { "uni0684.init" } }, + { { "uni0685" }, { "uni0685.init" } }, + { { "uni0686" }, { "uni0686.init" } }, + { { "uni0687" }, { "uni0687.init" } }, + { { "uni069A" }, { "uni069A.init" } }, + { { "uni069B" }, { "uni069B.init" } }, + { { "uni069C" }, { "uni069C.init" } }, + { { "uni069D" }, { "uni069D.init" } }, + { { "uni069E" }, { "uni069E.init" } }, + { { "uni069F" }, { "uni069F.init" } }, + { { "uni06A0" }, { "uni06A0.init" } }, + { { "uni06A1" }, { "uni06A1.init" } }, + { { "uni06A2" }, { "uni06A2.init" } }, + { { "uni06A3" }, { "uni06A3.init" } }, + { { "uni06A4" }, { "uni06A4.init" } }, + { { "uni06A5" }, { "uni06A5.init" } }, + { { "uni06A6" }, { "uni06A6.init" } }, + { { "uni06A7" }, { "uni06A7.init" } }, + { { "uni06A8" }, { "uni06A8.init" } }, + { { "uni06A9" }, { "uni06A9.init" } }, + { { "uni06AA" }, { "uni06AA.init" } }, + { { "uni06AB" }, { "uni06AB.init" } }, + { { "uni06AC" }, { "uni06AC.init" } }, + { { "uni06AD" }, { "uni06AD.init" } }, + { { "uni06AE" }, { "uni06AE.init" } }, + { { "uni06AF" }, { "uni06AF.init" } }, + { { "uni06B0" }, { "uni06B0.init" } }, + { { "uni06B1" }, { "uni06B1.init" } }, + { { "uni06B2" }, { "uni06B2.init" } }, + { { "uni06B3" }, { "uni06B3.init" } }, + { { "uni06B4" }, { "uni06B4.init" } }, + { { "uni06B5" }, { "uni06B5.init" } }, + { { "uni06B6" }, { "uni06B6.init" } }, + { { "uni06B7" }, { "uni06B7.init" } }, + { { "uni06B8" }, { "uni06B8.init" } }, + { { "uni06B9" }, { "uni06B9.init" } }, + { { "uni06BA" }, { "uni06BA.init" } }, + { { "uni06BB" }, { "uni06BB.init" } }, + { { "uni06BC" }, { "uni06BC.init" } }, + { { "uni06BD" }, { "uni06BD.init" } }, + { { "uni06BE" }, { "uni06BE.init" } }, + { { "uni06BF" }, { "uni06BF.init" } }, + { { "uni06C1" }, { "uni06C1.init" } }, + { { "uni06C2" }, { "uni06C2.init" } }, + { { "uni06CC" }, { "uni06CC.init" } }, + { { "uni06CE" }, { "uni06CE.init" } }, + { { "uni06D0" }, { "uni06D0.init" } }, + { { "uni06D1" }, { "uni06D1.init" } }, + { { "uni06FA" }, { "uni06FA.init" } }, + { { "uni06FB" }, { "uni06FB.init" } }, + { { "uni06FC" }, { "uni06FC.init" } }, + { { "uni06FF" }, { "uni06FF.init" } }, + { { "uni0750" }, { "uni0750.init" } }, + { { "uni0751" }, { "uni0751.init" } }, + { { "uni0752" }, { "uni0752.init" } }, + { { "uni0753" }, { "uni0753.init" } }, + { { "uni0754" }, { "uni0754.init" } }, + { { "uni0755" }, { "uni0755.init" } }, + { { "uni0756" }, { "uni0756.init" } }, + { { "uni0757" }, { "uni0757.init" } }, + { { "uni0758" }, { "uni0758.init" } }, + { { "uni075C" }, { "uni075C.init" } }, + { { "uni075D" }, { "uni075D.init" } }, + { { "uni075E" }, { "uni075E.init" } }, + { { "uni075F" }, { "uni075F.init" } }, + { { "uni0760" }, { "uni0760.init" } }, + { { "uni0761" }, { "uni0761.init" } }, + { { "uni0762" }, { "uni0762.init" } }, + { { "uni0763" }, { "uni0763.init" } }, + { { "uni0764" }, { "uni0764.init" } }, + { { "uni0765" }, { "uni0765.init" } }, + { { "uni0766" }, { "uni0766.init" } }, + { { "uni0767" }, { "uni0767.init" } }, + { { "uni0768" }, { "uni0768.init" } }, + { { "uni0769" }, { "uni0769.init" } }, + { { "uni076A" }, { "uni076A.init" } }, + { { "uni076D" }, { "uni076D.init" } }, + } + }, + { "f2", "lu2", "arab", "dflt", "fina", + new String[][][] { + { { "absJeemRetro1" }, { "absJeemRetro1Fin" } }, + { { "absJeemRetro2" }, { "absJeemRetro2Fin" } }, + { { "absJeemRetro3" }, { "absJeemRetro3Fin" } }, + { { "absJehRetro1" }, { "absJehRetro1Fin" } }, + { { "absJehRetro2" }, { "absJehRetro2Fin" } }, + { { "absLamRetro" }, { "absLamRetroFin" } }, + { { "absSheenRetro1" }, { "absSheenRetro1Fin" } }, + { { "absSheenRetro2" }, { "absSheenRetro2Fin" } }, + { { "absTchehRetro1" }, { "absTchehRetro1Fin" } }, + { { "absTchehRetro2" }, { "absTchehRetro2Fin" } }, + { { "absWawDotBelow" }, { "absWawDotBelowFin" } }, + { { "uni0622" }, { "uni0622.fina" } }, + { { "uni0623" }, { "uni0623.fina" } }, + { { "uni0624" }, { "uni0624.fina" } }, + { { "uni0625" }, { "uni0625.fina" } }, + { { "uni0626" }, { "uni0626.fina" } }, + { { "uni0627" }, { "uni0627.fina" } }, + { { "uni0628" }, { "uni0628.fina" } }, + { { "uni0629" }, { "uni0629.fina" } }, + { { "uni062A" }, { "uni062A.fina" } }, + { { "uni062B" }, { "uni062B.fina" } }, + { { "uni062C" }, { "uni062C.fina" } }, + { { "uni062D" }, { "uni062D.fina" } }, + { { "uni062E" }, { "uni062E.fina" } }, + { { "uni062F" }, { "uni062F.fina" } }, + { { "uni0630" }, { "uni0630.fina" } }, + { { "uni0631" }, { "uni0631.fina" } }, + { { "uni0632" }, { "uni0632.fina" } }, + { { "uni0633" }, { "uni0633.fina" } }, + { { "uni0634" }, { "uni0634.fina" } }, + { { "uni0635" }, { "uni0635.fina" } }, + { { "uni0636" }, { "uni0636.fina" } }, + { { "uni0637" }, { "uni0637.fina" } }, + { { "uni0638" }, { "uni0638.fina" } }, + { { "uni0639" }, { "uni0639.fina" } }, + { { "uni063A" }, { "uni063A.fina" } }, + { { "uni0641" }, { "uni0641.fina" } }, + { { "uni0642" }, { "uni0642.fina" } }, + { { "uni0643" }, { "uni0643.fina" } }, + { { "uni0644" }, { "uni0644.fina" } }, + { { "uni0645" }, { "uni0645.fina" } }, + { { "uni0646" }, { "uni0646.fina" } }, + { { "uni0647" }, { "uni0647.fina" } }, + { { "uni0648" }, { "uni0648.fina" } }, + { { "uni0649" }, { "uni0649.fina" } }, + { { "uni064A" }, { "uni064A.fina" } }, + { { "uni064A.noDots" }, { "uni064A.fina.noDots" } }, + { { "uni066E" }, { "uni066E.fina" } }, + { { "uni066F" }, { "uni066F.fina" } }, + { { "uni0671" }, { "uni0671.fina" } }, + { { "uni0672" }, { "uni0672.fina" } }, + { { "uni0673" }, { "uni0673.fina" } }, + { { "uni0675" }, { "uni0675.fina" } }, + { { "uni0676" }, { "uni0676.fina" } }, + { { "uni0677" }, { "uni0677.fina" } }, + { { "uni0678" }, { "uni0678.fina" } }, + { { "uni0679" }, { "uni0679.fina" } }, + { { "uni067A" }, { "uni067A.fina" } }, + { { "uni067B" }, { "uni067B.fina" } }, + { { "uni067C" }, { "uni067C.fina" } }, + { { "uni067D" }, { "uni067D.fina" } }, + { { "uni067E" }, { "uni067E.fina" } }, + { { "uni067F" }, { "uni067F.fina" } }, + { { "uni0680" }, { "uni0680.fina" } }, + { { "uni0681" }, { "uni0681.fina" } }, + { { "uni0682" }, { "uni0682.fina" } }, + { { "uni0683" }, { "uni0683.fina" } }, + { { "uni0684" }, { "uni0684.fina" } }, + { { "uni0685" }, { "uni0685.fina" } }, + { { "uni0686" }, { "uni0686.fina" } }, + { { "uni0687" }, { "uni0687.fina" } }, + { { "uni0688" }, { "uni0688.fina" } }, + { { "uni0689" }, { "uni0689.fina" } }, + { { "uni068A" }, { "uni068A.fina" } }, + { { "uni068B" }, { "uni068B.fina" } }, + { { "uni068C" }, { "uni068C.fina" } }, + { { "uni068D" }, { "uni068D.fina" } }, + { { "uni068E" }, { "uni068E.fina" } }, + { { "uni068F" }, { "uni068F.fina" } }, + { { "uni0690" }, { "uni0690.fina" } }, + { { "uni0691" }, { "uni0691.fina" } }, + { { "uni0692" }, { "uni0692.fina" } }, + { { "uni0693" }, { "uni0693.fina" } }, + { { "uni0694" }, { "uni0694.fina" } }, + { { "uni0695" }, { "uni0695.fina" } }, + { { "uni0696" }, { "uni0696.fina" } }, + { { "uni0697" }, { "uni0697.fina" } }, + { { "uni0698" }, { "uni0698.fina" } }, + { { "uni0698.dotHat" }, { "uni0698.fina.dotHat" } }, + { { "uni0699" }, { "uni0699.fina" } }, + { { "uni069A" }, { "uni069A.fina" } }, + { { "uni069B" }, { "uni069B.fina" } }, + { { "uni069C" }, { "uni069C.fina" } }, + { { "uni069D" }, { "uni069D.fina" } }, + { { "uni069E" }, { "uni069E.fina" } }, + { { "uni069F" }, { "uni069F.fina" } }, + { { "uni06A0" }, { "uni06A0.fina" } }, + { { "uni06A1" }, { "uni06A1.fina" } }, + { { "uni06A2" }, { "uni06A2.fina" } }, + { { "uni06A3" }, { "uni06A3.fina" } }, + { { "uni06A4" }, { "uni06A4.fina" } }, + { { "uni06A5" }, { "uni06A5.fina" } }, + { { "uni06A6" }, { "uni06A6.fina" } }, + { { "uni06A7" }, { "uni06A7.fina" } }, + { { "uni06A8" }, { "uni06A8.fina" } }, + { { "uni06A9" }, { "uni06A9.fina" } }, + { { "uni06AA" }, { "uni06AA.fina" } }, + { { "uni06AB" }, { "uni06AB.fina" } }, + { { "uni06AC" }, { "uni06AC.fina" } }, + { { "uni06AD" }, { "uni06AD.fina" } }, + { { "uni06AE" }, { "uni06AE.fina" } }, + { { "uni06AF" }, { "uni06AF.fina" } }, + { { "uni06B0" }, { "uni06B0.fina" } }, + { { "uni06B1" }, { "uni06B1.fina" } }, + { { "uni06B2" }, { "uni06B2.fina" } }, + { { "uni06B3" }, { "uni06B3.fina" } }, + { { "uni06B4" }, { "uni06B4.fina" } }, + { { "uni06B5" }, { "uni06B5.fina" } }, + { { "uni06B6" }, { "uni06B6.fina" } }, + { { "uni06B7" }, { "uni06B7.fina" } }, + { { "uni06B8" }, { "uni06B8.fina" } }, + { { "uni06B9" }, { "uni06B9.fina" } }, + { { "uni06BA" }, { "uni06BA.fina" } }, + { { "uni06BB" }, { "uni06BB.fina" } }, + { { "uni06BC" }, { "uni06BC.fina" } }, + { { "uni06BD" }, { "uni06BD.fina" } }, + { { "uni06BE" }, { "uni06BE.fina" } }, + { { "uni06BF" }, { "uni06BF.fina" } }, + { { "uni06C0" }, { "uni06C0.fina" } }, + { { "uni06C1" }, { "uni06C1.fina" } }, + { { "uni06C2" }, { "uni06C2.fina" } }, + { { "uni06C3" }, { "uni06C3.fina" } }, + { { "uni06C4" }, { "uni06C4.fina" } }, + { { "uni06C5" }, { "uni06C5.fina" } }, + { { "uni06C6" }, { "uni06C6.fina" } }, + { { "uni06C7" }, { "uni06C7.fina" } }, + { { "uni06C8" }, { "uni06C8.fina" } }, + { { "uni06C9" }, { "uni06C9.fina" } }, + { { "uni06CA" }, { "uni06CA.fina" } }, + { { "uni06CB" }, { "uni06CB.fina" } }, + { { "uni06CC" }, { "uni06CC.fina" } }, + { { "uni06CD" }, { "uni06CD.fina" } }, + { { "uni06CE" }, { "uni06CE.fina" } }, + { { "uni06CF" }, { "uni06CF.fina" } }, + { { "uni06D0" }, { "uni06D0.fina" } }, + { { "uni06D1" }, { "uni06D1.fina" } }, + { { "uni06D2" }, { "uni06D2.fina" } }, + { { "uni06D3" }, { "uni06D3.fina" } }, + { { "uni06D5" }, { "uni06D5.fina" } }, + { { "uni06EE" }, { "uni06EE.fina" } }, + { { "uni06EF" }, { "uni06EF.fina" } }, + { { "uni06FA" }, { "uni06FA.fina" } }, + { { "uni06FB" }, { "uni06FB.fina" } }, + { { "uni06FC" }, { "uni06FC.fina" } }, + { { "uni06FF" }, { "uni06FF.fina" } }, + { { "uni0750" }, { "uni0750.fina" } }, + { { "uni0751" }, { "uni0751.fina" } }, + { { "uni0752" }, { "uni0752.fina" } }, + { { "uni0753" }, { "uni0753.fina" } }, + { { "uni0754" }, { "uni0754.fina" } }, + { { "uni0755" }, { "uni0755.fina" } }, + { { "uni0756" }, { "uni0756.fina" } }, + { { "uni0757" }, { "uni0757.fina" } }, + { { "uni0758" }, { "uni0758.fina" } }, + { { "uni0759" }, { "uni0759.fina" } }, + { { "uni075A" }, { "uni075A.fina" } }, + { { "uni075B" }, { "uni075B.fina" } }, + { { "uni075C" }, { "uni075C.fina" } }, + { { "uni075D" }, { "uni075D.fina" } }, + { { "uni075E" }, { "uni075E.fina" } }, + { { "uni075F" }, { "uni075F.fina" } }, + { { "uni0760" }, { "uni0760.fina" } }, + { { "uni0761" }, { "uni0761.fina" } }, + { { "uni0762" }, { "uni0762.fina" } }, + { { "uni0763" }, { "uni0763.fina" } }, + { { "uni0764" }, { "uni0764.fina" } }, + { { "uni0765" }, { "uni0765.fina" } }, + { { "uni0766" }, { "uni0766.fina" } }, + { { "uni0767" }, { "uni0767.fina" } }, + { { "uni0768" }, { "uni0768.fina" } }, + { { "uni0769" }, { "uni0769.fina" } }, + { { "uni076A" }, { "uni076A.fina" } }, + { { "uni076B" }, { "uni076B.fina" } }, + { { "uni076C" }, { "uni076C.fina" } }, + { { "uni076D" }, { "uni076D.fina" } }, + } + }, + { "f2", "lu3", "arab", "dflt", "medi", + new String[][][] { + { { "absJeemRetro1" }, { "absJeemRetro1Med" } }, + { { "absJeemRetro2" }, { "absJeemRetro2Med" } }, + { { "absJeemRetro3" }, { "absJeemRetro3Med" } }, + { { "absLamRetro" }, { "absLamRetroMed" } }, + { { "absSheenRetro1" }, { "absSheenRetro1Med" } }, + { { "absSheenRetro2" }, { "absSheenRetro2Med" } }, + { { "absTchehRetro1" }, { "absTchehRetro1Med" } }, + { { "absTchehRetro2" }, { "absTchehRetro2Med" } }, + { { "uni0626" }, { "uni0626.medi" } }, + { { "uni0628" }, { "uni0628.medi" } }, + { { "uni062A" }, { "uni062A.medi" } }, + { { "uni062B" }, { "uni062B.medi" } }, + { { "uni062C" }, { "uni062C.medi" } }, + { { "uni062D" }, { "uni062D.medi" } }, + { { "uni062E" }, { "uni062E.medi" } }, + { { "uni0633" }, { "uni0633.medi" } }, + { { "uni0634" }, { "uni0634.medi" } }, + { { "uni0635" }, { "uni0635.medi" } }, + { { "uni0636" }, { "uni0636.medi" } }, + { { "uni0637" }, { "uni0637.medi" } }, + { { "uni0638" }, { "uni0638.medi" } }, + { { "uni0639" }, { "uni0639.medi" } }, + { { "uni063A" }, { "uni063A.medi" } }, + { { "uni0641" }, { "uni0641.medi" } }, + { { "uni0642" }, { "uni0642.medi" } }, + { { "uni0643" }, { "uni0643.medi" } }, + { { "uni0644" }, { "uni0644.medi" } }, + { { "uni0645" }, { "uni0645.medi" } }, + { { "uni0646" }, { "uni0646.medi" } }, + { { "uni0647" }, { "uni0647.medi" } }, + { { "uni0649" }, { "uni0649.medi" } }, + { { "uni064A" }, { "uni064A.medi" } }, + { { "uni064A.noDots" }, { "uni064A.medi.noDots" } }, + { { "uni066E" }, { "uni066E.medi" } }, + { { "uni066F" }, { "uni066F.medi" } }, + { { "uni0678" }, { "uni0678.medi" } }, + { { "uni0679" }, { "uni0679.medi" } }, + { { "uni067A" }, { "uni067A.medi" } }, + { { "uni067B" }, { "uni067B.medi" } }, + { { "uni067C" }, { "uni067C.medi" } }, + { { "uni067D" }, { "uni067D.medi" } }, + { { "uni067E" }, { "uni067E.medi" } }, + { { "uni067F" }, { "uni067F.medi" } }, + { { "uni0680" }, { "uni0680.medi" } }, + { { "uni0681" }, { "uni0681.medi" } }, + { { "uni0682" }, { "uni0682.medi" } }, + { { "uni0683" }, { "uni0683.medi" } }, + { { "uni0684" }, { "uni0684.medi" } }, + { { "uni0685" }, { "uni0685.medi" } }, + { { "uni0686" }, { "uni0686.medi" } }, + { { "uni0687" }, { "uni0687.medi" } }, + { { "uni069A" }, { "uni069A.medi" } }, + { { "uni069B" }, { "uni069B.medi" } }, + { { "uni069C" }, { "uni069C.medi" } }, + { { "uni069D" }, { "uni069D.medi" } }, + { { "uni069E" }, { "uni069E.medi" } }, + { { "uni069F" }, { "uni069F.medi" } }, + { { "uni06A0" }, { "uni06A0.medi" } }, + { { "uni06A1" }, { "uni06A1.medi" } }, + { { "uni06A2" }, { "uni06A2.medi" } }, + { { "uni06A3" }, { "uni06A3.medi" } }, + { { "uni06A4" }, { "uni06A4.medi" } }, + { { "uni06A5" }, { "uni06A5.medi" } }, + { { "uni06A6" }, { "uni06A6.medi" } }, + { { "uni06A7" }, { "uni06A7.medi" } }, + { { "uni06A8" }, { "uni06A8.medi" } }, + { { "uni06A9" }, { "uni06A9.medi" } }, + { { "uni06AA" }, { "uni06AA.medi" } }, + { { "uni06AB" }, { "uni06AB.medi" } }, + { { "uni06AC" }, { "uni06AC.medi" } }, + { { "uni06AD" }, { "uni06AD.medi" } }, + { { "uni06AE" }, { "uni06AE.medi" } }, + { { "uni06AF" }, { "uni06AF.medi" } }, + { { "uni06B0" }, { "uni06B0.medi" } }, + { { "uni06B1" }, { "uni06B1.medi" } }, + { { "uni06B2" }, { "uni06B2.medi" } }, + { { "uni06B3" }, { "uni06B3.medi" } }, + { { "uni06B4" }, { "uni06B4.medi" } }, + { { "uni06B5" }, { "uni06B5.medi" } }, + { { "uni06B6" }, { "uni06B6.medi" } }, + { { "uni06B7" }, { "uni06B7.medi" } }, + { { "uni06B8" }, { "uni06B8.medi" } }, + { { "uni06B9" }, { "uni06B9.medi" } }, + { { "uni06BA" }, { "uni06BA.medi" } }, + { { "uni06BB" }, { "uni06BB.medi" } }, + { { "uni06BC" }, { "uni06BC.medi" } }, + { { "uni06BD" }, { "uni06BD.medi" } }, + { { "uni06BE" }, { "uni06BE.medi" } }, + { { "uni06BF" }, { "uni06BF.medi" } }, + { { "uni06C1" }, { "uni06C1.medi" } }, + { { "uni06C2" }, { "uni06C2.medi" } }, + { { "uni06CC" }, { "uni06CC.medi" } }, + { { "uni06CE" }, { "uni06CE.medi" } }, + { { "uni06D0" }, { "uni06D0.medi" } }, + { { "uni06D1" }, { "uni06D1.medi" } }, + { { "uni06FA" }, { "uni06FA.medi" } }, + { { "uni06FB" }, { "uni06FB.medi" } }, + { { "uni06FC" }, { "uni06FC.medi" } }, + { { "uni06FF" }, { "uni06FF.medi" } }, + { { "uni0750" }, { "uni0750.medi" } }, + { { "uni0751" }, { "uni0751.medi" } }, + { { "uni0752" }, { "uni0752.medi" } }, + { { "uni0753" }, { "uni0753.medi" } }, + { { "uni0754" }, { "uni0754.medi" } }, + { { "uni0755" }, { "uni0755.medi" } }, + { { "uni0756" }, { "uni0756.medi" } }, + { { "uni0757" }, { "uni0757.medi" } }, + { { "uni0758" }, { "uni0758.medi" } }, + { { "uni075C" }, { "uni075C.medi" } }, + { { "uni075D" }, { "uni075D.medi" } }, + { { "uni075E" }, { "uni075E.medi" } }, + { { "uni075F" }, { "uni075F.medi" } }, + { { "uni0760" }, { "uni0760.medi" } }, + { { "uni0761" }, { "uni0761.medi" } }, + { { "uni0762" }, { "uni0762.medi" } }, + { { "uni0763" }, { "uni0763.medi" } }, + { { "uni0764" }, { "uni0764.medi" } }, + { { "uni0765" }, { "uni0765.medi" } }, + { { "uni0766" }, { "uni0766.medi" } }, + { { "uni0767" }, { "uni0767.medi" } }, + { { "uni0768" }, { "uni0768.medi" } }, + { { "uni0769" }, { "uni0769.medi" } }, + { { "uni076A" }, { "uni076A.medi" } }, + { { "uni076D" }, { "uni076D.medi" } }, + } + }, + { "f2", "lu9", "arab", "SND ", "calt", + new String[][][] { + { { "uni060C" }, { "uni060C.downward" } }, + { { "uni061B" }, { "uni061B.downward" } }, + { { "uni0645" }, { "uni0645.sindhi" } }, + { { "uni0645.fina" }, { "uni0645.fina.sindhi" } }, + { { "uni0647" }, { "uni0647.knotted" } }, + { { "uni0647.fina" }, { "uni0647.fina.knottedHigh" } }, + { { "uni0647.medi" }, { "uni0647.medi.knottedHigh" } }, + { { "uni064C" }, { "uni064C.sixNine" } }, + { { "uni06F6" }, { "uni06F6.urdu" } }, + { { "uni06F7" }, { "uni06F7.urdu" } }, + } + }, + { "f2", "lu10", "arab", "URD ", "calt", + new String[][][] { + { { "uni0647.fina" }, { "uni0647.fina.hooked" } }, + { { "uni0647.init" }, { "uni0647.init.hooked" } }, + { { "uni0647.medi" }, { "uni0647.medi.hooked" } }, + { { "uni06F4" }, { "uni06F4.urdu" } }, + { { "uni06F6" }, { "uni06F6.urdu" } }, + { { "uni06F7" }, { "uni06F7.urdu" } }, + } + }, + { "f2", "lu11", "arab", "KUR ", "calt", + new String[][][] { + { { "uni0647" }, { "uni0647.knotted" } }, + { { "uni0647.fina" }, { "uni0647.fina.knottedHigh" } }, + } + }, + { "f2", "lu12", "latn", "dflt", "ccmp", + new String[][][] { + { { "asterisk.arab" }, { "asterisk" } }, + { { "colon.arab" }, { "colon" } }, + { { "exclam.arab" }, { "exclam" } }, + { { "parenleft.arab" }, { "parenleft" } }, + { { "parenright.arab" }, { "parenright" } }, + { { "quotedblleft.arab" }, { "quotedblleft" } }, + { { "quotedblright.arab" }, { "quotedblright" } }, + { { "quoteleft.arab" }, { "quoteleft" } }, + { { "quoteright.arab" }, { "quoteright" } }, + } + }, + { "f2", "lu14", "arab", "*", "*", + new String[][][] { + { { "absLamRetroIni" }, { "absLamRetroIni.preAlef" } }, + { { "absLamRetroMed" }, { "absLamRetroMed.preAlef" } }, + { { "uni0644.init" }, { "uni0644.init.preAlef" } }, + { { "uni0644.medi" }, { "uni0644.medi.preAlef" } }, + { { "uni06B5.init" }, { "uni06B5.init.preAlef" } }, + { { "uni06B5.medi" }, { "uni06B5.medi.preAlef" } }, + { { "uni06B6.init" }, { "uni06B6.init.preAlef" } }, + { { "uni06B6.medi" }, { "uni06B6.medi.preAlef" } }, + { { "uni06B7.init" }, { "uni06B7.init.preAlef" } }, + { { "uni06B7.medi" }, { "uni06B7.medi.preAlef" } }, + { { "uni06B8.init" }, { "uni06B8.init.preAlef" } }, + { { "uni06B8.medi" }, { "uni06B8.medi.preAlef" } }, + { { "uni076A.init" }, { "uni076A.init.preAlef" } }, + { { "uni076A.medi" }, { "uni076A.medi.preAlef" } }, + } + }, + { "f2", "lu15", "arab", "*", "*", + new String[][][] { + { { "uni0622.fina" }, { "uni0622.fina.postLamIni" } }, + { { "uni0623.fina" }, { "uni0623.fina.postLamIni" } }, + { { "uni0625.fina" }, { "uni0625.fina.postLamIni" } }, + { { "uni0627.fina" }, { "uni0627.fina.postLamIni" } }, + { { "uni0671.fina" }, { "uni0671.fina.postLamIni" } }, + { { "uni0672.fina" }, { "uni0672.fina.postLamIni" } }, + { { "uni0673.fina" }, { "uni0673.fina.postLamIni" } }, + { { "uni0675.fina" }, { "uni0675.fina.postLamIni" } }, + } + }, + { "f2", "lu16", "arab", "*", "*", + new String[][][] { + { { "uni0622.fina" }, { "uni0622.fina.postLamMed" } }, + { { "uni0623.fina" }, { "uni0623.fina.postLamMed" } }, + { { "uni0625.fina" }, { "uni0625.fina.postLamMed" } }, + { { "uni0627.fina" }, { "uni0627.fina.postLamMed" } }, + { { "uni0671.fina" }, { "uni0671.fina.postLamMed" } }, + { { "uni0672.fina" }, { "uni0672.fina.postLamMed" } }, + { { "uni0673.fina" }, { "uni0673.fina.postLamMed" } }, + { { "uni0675.fina" }, { "uni0675.fina.postLamMed" } }, + } + }, + { "f2", "lu17", "arab", "*", "*", + new String[][][] { + { { "uni0670" }, { "uni0670.large" } }, + } + }, + { "f2", "lu18", "arab", "*", "*", + new String[][][] { + { { "uni06DD" }, { "uni06DD.3" } }, + } + }, + { "f2", "lu19", "arab", "*", "*", + new String[][][] { + { { "uni06DD" }, { "uni06DD.2" } }, + } + }, + { "f2", "lu20", "arab", "*", "*", + new String[][][] { + { { "eight" }, { "eightMedium" } }, + { { "five" }, { "fiveMedium" } }, + { { "four" }, { "fourMedium" } }, + { { "nine" }, { "nineMedium" } }, + { { "one" }, { "oneMedium" } }, + { { "seven" }, { "sevenMedium" } }, + { { "six" }, { "sixMedium" } }, + { { "three" }, { "threeMedium" } }, + { { "two" }, { "twoMedium" } }, + { { "uni0660" }, { "uni0660.Medium" } }, + { { "uni0661" }, { "uni0661.Medium" } }, + { { "uni0662" }, { "uni0662.Medium" } }, + { { "uni0663" }, { "uni0663.Medium" } }, + { { "uni0664" }, { "uni0664.Medium" } }, + { { "uni0665" }, { "uni0665.Medium" } }, + { { "uni0666" }, { "uni0666.Medium" } }, + { { "uni0667" }, { "uni0667.Medium" } }, + { { "uni0668" }, { "uni0668.Medium" } }, + { { "uni0669" }, { "uni0669.Medium" } }, + { { "uni06F0" }, { "uni06F0.Medium" } }, + { { "uni06F1" }, { "uni06F1.Medium" } }, + { { "uni06F2" }, { "uni06F2.Medium" } }, + { { "uni06F3" }, { "uni06F3.Medium" } }, + { { "uni06F4" }, { "uni06F4.Medium" } }, + { { "uni06F4.urdu" }, { "uni06F4.Medium.urdu" } }, + { { "uni06F5" }, { "uni06F5.Medium" } }, + { { "uni06F6" }, { "uni06F6.Medium" } }, + { { "uni06F6.urdu" }, { "uni06F6.Medium.urdu" } }, + { { "uni06F7" }, { "uni06F7.Medium" } }, + { { "uni06F7.urdu" }, { "uni06F7.Medium.urdu" } }, + { { "uni06F8" }, { "uni06F8.Medium" } }, + { { "uni06F9" }, { "uni06F9.Medium" } }, + { { "zero" }, { "zeroMedium" } }, + } + }, + { "f2", "lu21", "arab", "*", "*", + new String[][][] { + { { "eight" }, { "eightSmall" } }, + { { "five" }, { "fiveSmall" } }, + { { "four" }, { "fourSmall" } }, + { { "nine" }, { "nineSmall" } }, + { { "one" }, { "oneSmall" } }, + { { "seven" }, { "sevenSmall" } }, + { { "six" }, { "sixSmall" } }, + { { "three" }, { "threeSmall" } }, + { { "two" }, { "twoSmall" } }, + { { "uni0660" }, { "uni0660.Small" } }, + { { "uni0661" }, { "uni0661.Small" } }, + { { "uni0662" }, { "uni0662.Small" } }, + { { "uni0663" }, { "uni0663.Small" } }, + { { "uni0664" }, { "uni0664.Small" } }, + { { "uni0665" }, { "uni0665.Small" } }, + { { "uni0666" }, { "uni0666.Small" } }, + { { "uni0667" }, { "uni0667.Small" } }, + { { "uni0668" }, { "uni0668.Small" } }, + { { "uni0669" }, { "uni0669.Small" } }, + { { "uni06F0" }, { "uni06F0.Small" } }, + { { "uni06F1" }, { "uni06F1.Small" } }, + { { "uni06F2" }, { "uni06F2.Small" } }, + { { "uni06F3" }, { "uni06F3.Small" } }, + { { "uni06F4" }, { "uni06F4.Small" } }, + { { "uni06F4.urdu" }, { "uni06F4.Small.urdu" } }, + { { "uni06F5" }, { "uni06F5.Small" } }, + { { "uni06F6" }, { "uni06F6.Small" } }, + { { "uni06F6.urdu" }, { "uni06F6.Small.urdu" } }, + { { "uni06F7" }, { "uni06F7.Small" } }, + { { "uni06F7.urdu" }, { "uni06F7.Small.urdu" } }, + { { "uni06F8" }, { "uni06F8.Small" } }, + { { "uni06F9" }, { "uni06F9.Small" } }, + { { "zero" }, { "zeroSmall" } }, + } + }, + // arab-004.ttx + { "f3", "lu1", "arab", "dflt", "init", + new String[][][] { + { { "absJeemRetro1" }, { "absJeemRetro1Ini" } }, + { { "absJeemRetro2" }, { "absJeemRetro2Ini" } }, + { { "absJeemRetro3" }, { "absJeemRetro3Ini" } }, + { { "absLamRetro" }, { "absLamRetroIni" } }, + { { "absSheenRetro1" }, { "absSheenRetro1Ini" } }, + { { "absSheenRetro2" }, { "absSheenRetro2Ini" } }, + { { "absTchehRetro1" }, { "absTchehRetro1Ini" } }, + { { "absTchehRetro2" }, { "absTchehRetro2Ini" } }, + { { "uni0626" }, { "uni0626.init" } }, + { { "uni0628" }, { "uni0628.init" } }, + { { "uni062A" }, { "uni062A.init" } }, + { { "uni062B" }, { "uni062B.init" } }, + { { "uni062C" }, { "uni062C.init" } }, + { { "uni062D" }, { "uni062D.init" } }, + { { "uni062E" }, { "uni062E.init" } }, + { { "uni0633" }, { "uni0633.init" } }, + { { "uni0634" }, { "uni0634.init" } }, + { { "uni0635" }, { "uni0635.init" } }, + { { "uni0636" }, { "uni0636.init" } }, + { { "uni0637" }, { "uni0637.init" } }, + { { "uni0638" }, { "uni0638.init" } }, + { { "uni0639" }, { "uni0639.init" } }, + { { "uni063A" }, { "uni063A.init" } }, + { { "uni0641" }, { "uni0641.init" } }, + { { "uni0642" }, { "uni0642.init" } }, + { { "uni0643" }, { "uni0643.init" } }, + { { "uni0644" }, { "uni0644.init" } }, + { { "uni0645" }, { "uni0645.init" } }, + { { "uni0646" }, { "uni0646.init" } }, + { { "uni0647" }, { "uni0647.init" } }, + { { "uni0649" }, { "uni0649.init" } }, + { { "uni064A" }, { "uni064A.init" } }, + { { "uni064A.noDots" }, { "uni064A.init.noDots" } }, + { { "uni066E" }, { "uni066E.init" } }, + { { "uni066F" }, { "uni066F.init" } }, + { { "uni0678" }, { "uni0678.init" } }, + { { "uni0679" }, { "uni0679.init" } }, + { { "uni067A" }, { "uni067A.init" } }, + { { "uni067B" }, { "uni067B.init" } }, + { { "uni067C" }, { "uni067C.init" } }, + { { "uni067D" }, { "uni067D.init" } }, + { { "uni067E" }, { "uni067E.init" } }, + { { "uni067F" }, { "uni067F.init" } }, + { { "uni0680" }, { "uni0680.init" } }, + { { "uni0681" }, { "uni0681.init" } }, + { { "uni0682" }, { "uni0682.init" } }, + { { "uni0683" }, { "uni0683.init" } }, + { { "uni0684" }, { "uni0684.init" } }, + { { "uni0685" }, { "uni0685.init" } }, + { { "uni0686" }, { "uni0686.init" } }, + { { "uni0687" }, { "uni0687.init" } }, + { { "uni069A" }, { "uni069A.init" } }, + { { "uni069B" }, { "uni069B.init" } }, + { { "uni069C" }, { "uni069C.init" } }, + { { "uni069D" }, { "uni069D.init" } }, + { { "uni069E" }, { "uni069E.init" } }, + { { "uni069F" }, { "uni069F.init" } }, + { { "uni06A0" }, { "uni06A0.init" } }, + { { "uni06A1" }, { "uni06A1.init" } }, + { { "uni06A2" }, { "uni06A2.init" } }, + { { "uni06A3" }, { "uni06A3.init" } }, + { { "uni06A4" }, { "uni06A4.init" } }, + { { "uni06A5" }, { "uni06A5.init" } }, + { { "uni06A6" }, { "uni06A6.init" } }, + { { "uni06A7" }, { "uni06A7.init" } }, + { { "uni06A8" }, { "uni06A8.init" } }, + { { "uni06A9" }, { "uni06A9.init" } }, + { { "uni06AA" }, { "uni06AA.init" } }, + { { "uni06AB" }, { "uni06AB.init" } }, + { { "uni06AC" }, { "uni06AC.init" } }, + { { "uni06AD" }, { "uni06AD.init" } }, + { { "uni06AE" }, { "uni06AE.init" } }, + { { "uni06AF" }, { "uni06AF.init" } }, + { { "uni06B0" }, { "uni06B0.init" } }, + { { "uni06B1" }, { "uni06B1.init" } }, + { { "uni06B2" }, { "uni06B2.init" } }, + { { "uni06B3" }, { "uni06B3.init" } }, + { { "uni06B4" }, { "uni06B4.init" } }, + { { "uni06B5" }, { "uni06B5.init" } }, + { { "uni06B6" }, { "uni06B6.init" } }, + { { "uni06B7" }, { "uni06B7.init" } }, + { { "uni06B8" }, { "uni06B8.init" } }, + { { "uni06B9" }, { "uni06B9.init" } }, + { { "uni06BA" }, { "uni06BA.init" } }, + { { "uni06BB" }, { "uni06BB.init" } }, + { { "uni06BC" }, { "uni06BC.init" } }, + { { "uni06BD" }, { "uni06BD.init" } }, + { { "uni06BE" }, { "uni06BE.init" } }, + { { "uni06BF" }, { "uni06BF.init" } }, + { { "uni06C1" }, { "uni06C1.init" } }, + { { "uni06CC" }, { "uni06CC.init" } }, + { { "uni06CE" }, { "uni06CE.init" } }, + { { "uni06D0" }, { "uni06D0.init" } }, + { { "uni06D1" }, { "uni06D1.init" } }, + { { "uni06FA" }, { "uni06FA.init" } }, + { { "uni06FB" }, { "uni06FB.init" } }, + { { "uni06FC" }, { "uni06FC.init" } }, + { { "uni06FF" }, { "uni06FF.init" } }, + { { "uni0750" }, { "uni0750.init" } }, + { { "uni0751" }, { "uni0751.init" } }, + { { "uni0752" }, { "uni0752.init" } }, + { { "uni0753" }, { "uni0753.init" } }, + { { "uni0754" }, { "uni0754.init" } }, + { { "uni0755" }, { "uni0755.init" } }, + { { "uni0756" }, { "uni0756.init" } }, + { { "uni0757" }, { "uni0757.init" } }, + { { "uni0758" }, { "uni0758.init" } }, + { { "uni075C" }, { "uni075C.init" } }, + { { "uni075D" }, { "uni075D.init" } }, + { { "uni075E" }, { "uni075E.init" } }, + { { "uni075F" }, { "uni075F.init" } }, + { { "uni0760" }, { "uni0760.init" } }, + { { "uni0761" }, { "uni0761.init" } }, + { { "uni0762" }, { "uni0762.init" } }, + { { "uni0763" }, { "uni0763.init" } }, + { { "uni0764" }, { "uni0764.init" } }, + { { "uni0765" }, { "uni0765.init" } }, + { { "uni0766" }, { "uni0766.init" } }, + { { "uni0767" }, { "uni0767.init" } }, + { { "uni0768" }, { "uni0768.init" } }, + { { "uni0769" }, { "uni0769.init" } }, + { { "uni076A" }, { "uni076A.init" } }, + { { "uni076D" }, { "uni076D.init" } }, + } + }, + { "f3", "lu2", "arab", "dflt", "fina", + new String[][][] { + { { "absJeemRetro1" }, { "absJeemRetro1Fin" } }, + { { "absJeemRetro2" }, { "absJeemRetro2Fin" } }, + { { "absJeemRetro3" }, { "absJeemRetro3Fin" } }, + { { "absJehRetro1" }, { "absJehRetro1Fin" } }, + { { "absJehRetro2" }, { "absJehRetro2Fin" } }, + { { "absLamRetro" }, { "absLamRetroFin" } }, + { { "absSheenRetro1" }, { "absSheenRetro1Fin" } }, + { { "absSheenRetro2" }, { "absSheenRetro2Fin" } }, + { { "absTchehRetro1" }, { "absTchehRetro1Fin" } }, + { { "absTchehRetro2" }, { "absTchehRetro2Fin" } }, + { { "absWawDotBelow" }, { "absWawDotBelowFin" } }, + { { "uni0622" }, { "uni0622.fina" } }, + { { "uni0623" }, { "uni0623.fina" } }, + { { "uni0624" }, { "uni0624.fina" } }, + { { "uni0625" }, { "uni0625.fina" } }, + { { "uni0626" }, { "uni0626.fina" } }, + { { "uni0627" }, { "uni0627.fina" } }, + { { "uni0628" }, { "uni0628.fina" } }, + { { "uni0629" }, { "uni0629.fina" } }, + { { "uni062A" }, { "uni062A.fina" } }, + { { "uni062B" }, { "uni062B.fina" } }, + { { "uni062C" }, { "uni062C.fina" } }, + { { "uni062D" }, { "uni062D.fina" } }, + { { "uni062E" }, { "uni062E.fina" } }, + { { "uni062F" }, { "uni062F.fina" } }, + { { "uni0630" }, { "uni0630.fina" } }, + { { "uni0631" }, { "uni0631.fina" } }, + { { "uni0632" }, { "uni0632.fina" } }, + { { "uni0633" }, { "uni0633.fina" } }, + { { "uni0634" }, { "uni0634.fina" } }, + { { "uni0635" }, { "uni0635.fina" } }, + { { "uni0636" }, { "uni0636.fina" } }, + { { "uni0637" }, { "uni0637.fina" } }, + { { "uni0638" }, { "uni0638.fina" } }, + { { "uni0639" }, { "uni0639.fina" } }, + { { "uni063A" }, { "uni063A.fina" } }, + { { "uni0641" }, { "uni0641.fina" } }, + { { "uni0642" }, { "uni0642.fina" } }, + { { "uni0643" }, { "uni0643.fina" } }, + { { "uni0644" }, { "uni0644.fina" } }, + { { "uni0645" }, { "uni0645.fina" } }, + { { "uni0646" }, { "uni0646.fina" } }, + { { "uni0647" }, { "uni0647.fina" } }, + { { "uni0648" }, { "uni0648.fina" } }, + { { "uni0649" }, { "uni0649.fina" } }, + { { "uni064A" }, { "uni064A.fina" } }, + { { "uni064A.noDots" }, { "uni064A.fina.noDots" } }, + { { "uni066E" }, { "uni066E.fina" } }, + { { "uni066F" }, { "uni066F.fina" } }, + { { "uni0671" }, { "uni0671.fina" } }, + { { "uni0672" }, { "uni0672.fina" } }, + { { "uni0673" }, { "uni0673.fina" } }, + { { "uni0675" }, { "uni0675.fina" } }, + { { "uni0676" }, { "uni0676.fina" } }, + { { "uni0677" }, { "uni0677.fina" } }, + { { "uni0678" }, { "uni0678.fina" } }, + { { "uni0679" }, { "uni0679.fina" } }, + { { "uni067A" }, { "uni067A.fina" } }, + { { "uni067B" }, { "uni067B.fina" } }, + { { "uni067C" }, { "uni067C.fina" } }, + { { "uni067D" }, { "uni067D.fina" } }, + { { "uni067E" }, { "uni067E.fina" } }, + { { "uni067F" }, { "uni067F.fina" } }, + { { "uni0680" }, { "uni0680.fina" } }, + { { "uni0681" }, { "uni0681.fina" } }, + { { "uni0682" }, { "uni0682.fina" } }, + { { "uni0683" }, { "uni0683.fina" } }, + { { "uni0684" }, { "uni0684.fina" } }, + { { "uni0685" }, { "uni0685.fina" } }, + { { "uni0686" }, { "uni0686.fina" } }, + { { "uni0687" }, { "uni0687.fina" } }, + { { "uni0688" }, { "uni0688.fina" } }, + { { "uni0689" }, { "uni0689.fina" } }, + { { "uni068A" }, { "uni068A.fina" } }, + { { "uni068B" }, { "uni068B.fina" } }, + { { "uni068C" }, { "uni068C.fina" } }, + { { "uni068D" }, { "uni068D.fina" } }, + { { "uni068E" }, { "uni068E.fina" } }, + { { "uni068F" }, { "uni068F.fina" } }, + { { "uni0690" }, { "uni0690.fina" } }, + { { "uni0691" }, { "uni0691.fina" } }, + { { "uni0692" }, { "uni0692.fina" } }, + { { "uni0693" }, { "uni0693.fina" } }, + { { "uni0694" }, { "uni0694.fina" } }, + { { "uni0695" }, { "uni0695.fina" } }, + { { "uni0696" }, { "uni0696.fina" } }, + { { "uni0697" }, { "uni0697.fina" } }, + { { "uni0698" }, { "uni0698.fina" } }, + { { "uni0698.dotHat" }, { "uni0698.fina.dotHat" } }, + { { "uni0699" }, { "uni0699.fina" } }, + { { "uni069A" }, { "uni069A.fina" } }, + { { "uni069B" }, { "uni069B.fina" } }, + { { "uni069C" }, { "uni069C.fina" } }, + { { "uni069D" }, { "uni069D.fina" } }, + { { "uni069E" }, { "uni069E.fina" } }, + { { "uni069F" }, { "uni069F.fina" } }, + { { "uni06A0" }, { "uni06A0.fina" } }, + { { "uni06A1" }, { "uni06A1.fina" } }, + { { "uni06A2" }, { "uni06A2.fina" } }, + { { "uni06A3" }, { "uni06A3.fina" } }, + { { "uni06A4" }, { "uni06A4.fina" } }, + { { "uni06A5" }, { "uni06A5.fina" } }, + { { "uni06A6" }, { "uni06A6.fina" } }, + { { "uni06A7" }, { "uni06A7.fina" } }, + { { "uni06A8" }, { "uni06A8.fina" } }, + { { "uni06A9" }, { "uni06A9.fina" } }, + { { "uni06AA" }, { "uni06AA.fina" } }, + { { "uni06AB" }, { "uni06AB.fina" } }, + { { "uni06AC" }, { "uni06AC.fina" } }, + { { "uni06AD" }, { "uni06AD.fina" } }, + { { "uni06AE" }, { "uni06AE.fina" } }, + { { "uni06AF" }, { "uni06AF.fina" } }, + { { "uni06B0" }, { "uni06B0.fina" } }, + { { "uni06B1" }, { "uni06B1.fina" } }, + { { "uni06B2" }, { "uni06B2.fina" } }, + { { "uni06B3" }, { "uni06B3.fina" } }, + { { "uni06B4" }, { "uni06B4.fina" } }, + { { "uni06B5" }, { "uni06B5.fina" } }, + { { "uni06B6" }, { "uni06B6.fina" } }, + { { "uni06B7" }, { "uni06B7.fina" } }, + { { "uni06B8" }, { "uni06B8.fina" } }, + { { "uni06B9" }, { "uni06B9.fina" } }, + { { "uni06BA" }, { "uni06BA.fina" } }, + { { "uni06BB" }, { "uni06BB.fina" } }, + { { "uni06BC" }, { "uni06BC.fina" } }, + { { "uni06BD" }, { "uni06BD.fina" } }, + { { "uni06BE" }, { "uni06BE.fina" } }, + { { "uni06BF" }, { "uni06BF.fina" } }, + { { "uni06C0" }, { "uni06C0.fina" } }, + { { "uni06C1" }, { "uni06C1.fina" } }, + { { "uni06C2" }, { "uni06C2.fina" } }, + { { "uni06C3" }, { "uni06C3.fina" } }, + { { "uni06C4" }, { "uni06C4.fina" } }, + { { "uni06C5" }, { "uni06C5.fina" } }, + { { "uni06C6" }, { "uni06C6.fina" } }, + { { "uni06C7" }, { "uni06C7.fina" } }, + { { "uni06C8" }, { "uni06C8.fina" } }, + { { "uni06C9" }, { "uni06C9.fina" } }, + { { "uni06CA" }, { "uni06CA.fina" } }, + { { "uni06CB" }, { "uni06CB.fina" } }, + { { "uni06CC" }, { "uni06CC.fina" } }, + { { "uni06CD" }, { "uni06CD.fina" } }, + { { "uni06CE" }, { "uni06CE.fina" } }, + { { "uni06CF" }, { "uni06CF.fina" } }, + { { "uni06D0" }, { "uni06D0.fina" } }, + { { "uni06D1" }, { "uni06D1.fina" } }, + { { "uni06D2" }, { "uni06D2.fina" } }, + { { "uni06D3" }, { "uni06D3.fina" } }, + { { "uni06D5" }, { "uni06D5.fina" } }, + { { "uni06EE" }, { "uni06EE.fina" } }, + { { "uni06EF" }, { "uni06EF.fina" } }, + { { "uni06FA" }, { "uni06FA.fina" } }, + { { "uni06FB" }, { "uni06FB.fina" } }, + { { "uni06FC" }, { "uni06FC.fina" } }, + { { "uni06FF" }, { "uni06FF.fina" } }, + { { "uni0750" }, { "uni0750.fina" } }, + { { "uni0751" }, { "uni0751.fina" } }, + { { "uni0752" }, { "uni0752.fina" } }, + { { "uni0753" }, { "uni0753.fina" } }, + { { "uni0754" }, { "uni0754.fina" } }, + { { "uni0755" }, { "uni0755.fina" } }, + { { "uni0756" }, { "uni0756.fina" } }, + { { "uni0757" }, { "uni0757.fina" } }, + { { "uni0758" }, { "uni0758.fina" } }, + { { "uni0759" }, { "uni0759.fina" } }, + { { "uni075A" }, { "uni075A.fina" } }, + { { "uni075B" }, { "uni075B.fina" } }, + { { "uni075C" }, { "uni075C.fina" } }, + { { "uni075D" }, { "uni075D.fina" } }, + { { "uni075E" }, { "uni075E.fina" } }, + { { "uni075F" }, { "uni075F.fina" } }, + { { "uni0760" }, { "uni0760.fina" } }, + { { "uni0761" }, { "uni0761.fina" } }, + { { "uni0762" }, { "uni0762.fina" } }, + { { "uni0763" }, { "uni0763.fina" } }, + { { "uni0764" }, { "uni0764.fina" } }, + { { "uni0765" }, { "uni0765.fina" } }, + { { "uni0766" }, { "uni0766.fina" } }, + { { "uni0767" }, { "uni0767.fina" } }, + { { "uni0768" }, { "uni0768.fina" } }, + { { "uni0769" }, { "uni0769.fina" } }, + { { "uni076A" }, { "uni076A.fina" } }, + { { "uni076B" }, { "uni076B.fina" } }, + { { "uni076C" }, { "uni076C.fina" } }, + { { "uni076D" }, { "uni076D.fina" } }, + } + }, + { "f3", "lu3", "arab", "dflt", "medi", + new String[][][] { + { { "absJeemRetro1" }, { "absJeemRetro1Med" } }, + { { "absJeemRetro2" }, { "absJeemRetro2Med" } }, + { { "absJeemRetro3" }, { "absJeemRetro3Med" } }, + { { "absLamRetro" }, { "absLamRetroMed" } }, + { { "absSheenRetro1" }, { "absSheenRetro1Med" } }, + { { "absSheenRetro2" }, { "absSheenRetro2Med" } }, + { { "absTchehRetro1" }, { "absTchehRetro1Med" } }, + { { "absTchehRetro2" }, { "absTchehRetro2Med" } }, + { { "uni0626" }, { "uni0626.medi" } }, + { { "uni0628" }, { "uni0628.medi" } }, + { { "uni062A" }, { "uni062A.medi" } }, + { { "uni062B" }, { "uni062B.medi" } }, + { { "uni062C" }, { "uni062C.medi" } }, + { { "uni062D" }, { "uni062D.medi" } }, + { { "uni062E" }, { "uni062E.medi" } }, + { { "uni0633" }, { "uni0633.medi" } }, + { { "uni0634" }, { "uni0634.medi" } }, + { { "uni0635" }, { "uni0635.medi" } }, + { { "uni0636" }, { "uni0636.medi" } }, + { { "uni0637" }, { "uni0637.medi" } }, + { { "uni0638" }, { "uni0638.medi" } }, + { { "uni0639" }, { "uni0639.medi" } }, + { { "uni063A" }, { "uni063A.medi" } }, + { { "uni0641" }, { "uni0641.medi" } }, + { { "uni0642" }, { "uni0642.medi" } }, + { { "uni0643" }, { "uni0643.medi" } }, + { { "uni0644" }, { "uni0644.medi" } }, + { { "uni0645" }, { "uni0645.medi" } }, + { { "uni0646" }, { "uni0646.medi" } }, + { { "uni0647" }, { "uni0647.medi" } }, + { { "uni0649" }, { "uni0649.medi" } }, + { { "uni064A" }, { "uni064A.medi" } }, + { { "uni064A.noDots" }, { "uni064A.medi.noDots" } }, + { { "uni066E" }, { "uni066E.medi" } }, + { { "uni066F" }, { "uni066F.medi" } }, + { { "uni0678" }, { "uni0678.medi" } }, + { { "uni0679" }, { "uni0679.medi" } }, + { { "uni067A" }, { "uni067A.medi" } }, + { { "uni067B" }, { "uni067B.medi" } }, + { { "uni067C" }, { "uni067C.medi" } }, + { { "uni067D" }, { "uni067D.medi" } }, + { { "uni067E" }, { "uni067E.medi" } }, + { { "uni067F" }, { "uni067F.medi" } }, + { { "uni0680" }, { "uni0680.medi" } }, + { { "uni0681" }, { "uni0681.medi" } }, + { { "uni0682" }, { "uni0682.medi" } }, + { { "uni0683" }, { "uni0683.medi" } }, + { { "uni0684" }, { "uni0684.medi" } }, + { { "uni0685" }, { "uni0685.medi" } }, + { { "uni0686" }, { "uni0686.medi" } }, + { { "uni0687" }, { "uni0687.medi" } }, + { { "uni069A" }, { "uni069A.medi" } }, + { { "uni069B" }, { "uni069B.medi" } }, + { { "uni069C" }, { "uni069C.medi" } }, + { { "uni069D" }, { "uni069D.medi" } }, + { { "uni069E" }, { "uni069E.medi" } }, + { { "uni069F" }, { "uni069F.medi" } }, + { { "uni06A0" }, { "uni06A0.medi" } }, + { { "uni06A1" }, { "uni06A1.medi" } }, + { { "uni06A2" }, { "uni06A2.medi" } }, + { { "uni06A3" }, { "uni06A3.medi" } }, + { { "uni06A4" }, { "uni06A4.medi" } }, + { { "uni06A5" }, { "uni06A5.medi" } }, + { { "uni06A6" }, { "uni06A6.medi" } }, + { { "uni06A7" }, { "uni06A7.medi" } }, + { { "uni06A8" }, { "uni06A8.medi" } }, + { { "uni06A9" }, { "uni06A9.medi" } }, + { { "uni06AA" }, { "uni06AA.medi" } }, + { { "uni06AB" }, { "uni06AB.medi" } }, + { { "uni06AC" }, { "uni06AC.medi" } }, + { { "uni06AD" }, { "uni06AD.medi" } }, + { { "uni06AE" }, { "uni06AE.medi" } }, + { { "uni06AF" }, { "uni06AF.medi" } }, + { { "uni06B0" }, { "uni06B0.medi" } }, + { { "uni06B1" }, { "uni06B1.medi" } }, + { { "uni06B2" }, { "uni06B2.medi" } }, + { { "uni06B3" }, { "uni06B3.medi" } }, + { { "uni06B4" }, { "uni06B4.medi" } }, + { { "uni06B5" }, { "uni06B5.medi" } }, + { { "uni06B6" }, { "uni06B6.medi" } }, + { { "uni06B7" }, { "uni06B7.medi" } }, + { { "uni06B8" }, { "uni06B8.medi" } }, + { { "uni06B9" }, { "uni06B9.medi" } }, + { { "uni06BA" }, { "uni06BA.medi" } }, + { { "uni06BB" }, { "uni06BB.medi" } }, + { { "uni06BC" }, { "uni06BC.medi" } }, + { { "uni06BD" }, { "uni06BD.medi" } }, + { { "uni06BE" }, { "uni06BE.medi" } }, + { { "uni06BF" }, { "uni06BF.medi" } }, + { { "uni06C1" }, { "uni06C1.medi" } }, + { { "uni06CC" }, { "uni06CC.medi" } }, + { { "uni06CE" }, { "uni06CE.medi" } }, + { { "uni06D0" }, { "uni06D0.medi" } }, + { { "uni06D1" }, { "uni06D1.medi" } }, + { { "uni06FA" }, { "uni06FA.medi" } }, + { { "uni06FB" }, { "uni06FB.medi" } }, + { { "uni06FC" }, { "uni06FC.medi" } }, + { { "uni06FF" }, { "uni06FF.medi" } }, + { { "uni0750" }, { "uni0750.medi" } }, + { { "uni0751" }, { "uni0751.medi" } }, + { { "uni0752" }, { "uni0752.medi" } }, + { { "uni0753" }, { "uni0753.medi" } }, + { { "uni0754" }, { "uni0754.medi" } }, + { { "uni0755" }, { "uni0755.medi" } }, + { { "uni0756" }, { "uni0756.medi" } }, + { { "uni0757" }, { "uni0757.medi" } }, + { { "uni0758" }, { "uni0758.medi" } }, + { { "uni075C" }, { "uni075C.medi" } }, + { { "uni075D" }, { "uni075D.medi" } }, + { { "uni075E" }, { "uni075E.medi" } }, + { { "uni075F" }, { "uni075F.medi" } }, + { { "uni0760" }, { "uni0760.medi" } }, + { { "uni0761" }, { "uni0761.medi" } }, + { { "uni0762" }, { "uni0762.medi" } }, + { { "uni0763" }, { "uni0763.medi" } }, + { { "uni0764" }, { "uni0764.medi" } }, + { { "uni0765" }, { "uni0765.medi" } }, + { { "uni0766" }, { "uni0766.medi" } }, + { { "uni0767" }, { "uni0767.medi" } }, + { { "uni0768" }, { "uni0768.medi" } }, + { { "uni0769" }, { "uni0769.medi" } }, + { { "uni076A" }, { "uni076A.medi" } }, + { { "uni076D" }, { "uni076D.medi" } }, + } + }, + { "f3", "lu11", "arab", "SND ", "calt", + new String[][][] { + { { "uni0645" }, { "uni0645.sindhi" } }, + { { "uni0645.fina" }, { "uni0645.fina.sindhi" } }, + { { "uni0647" }, { "uni0647.knotted" } }, + { { "uni0647.fina" }, { "uni0647.fina.knottedHigh" } }, + { { "uni0647.medi" }, { "uni0647.medi.knottedHigh" } }, + { { "uni06F6" }, { "uni06F6.urdu" } }, + { { "uni06F7" }, { "uni06F7.urdu" } }, + } + }, + { "f3", "lu12", "arab", "KUR ", "calt", + new String[][][] { + { { "uni0647" }, { "uni0647.knotted" } }, + { { "uni0647.fina" }, { "uni0647.fina.knottedHigh" } }, + } + }, + { "f3", "lu13", "arab", "URD ", "calt", + new String[][][] { + { { "uni0647.fina" }, { "uni0647.fina.hooked" } }, + { { "uni0647.init" }, { "uni0647.init.hooked" } }, + { { "uni0647.medi" }, { "uni0647.medi.hooked" } }, + { { "uni06F4" }, { "uni06F4.urdu" } }, + { { "uni06F6" }, { "uni06F6.urdu" } }, + { { "uni06F7" }, { "uni06F7.urdu" } }, + } + }, + { "f3", "lu15", "arab", "*", "*", + new String[][][] { + { { "absLamRetroIni" }, { "absLamRetroIni.preAlef" } }, + { { "absLamRetroMed" }, { "absLamRetroMed.preAlef" } }, + { { "uni0644.init" }, { "uni0644.init.preAlef" } }, + { { "uni0644.medi" }, { "uni0644.medi.preAlef" } }, + { { "uni06B5.init" }, { "uni06B5.init.preAlef" } }, + { { "uni06B5.medi" }, { "uni06B5.medi.preAlef" } }, + { { "uni06B6.init" }, { "uni06B6.init.preAlef" } }, + { { "uni06B6.medi" }, { "uni06B6.medi.preAlef" } }, + { { "uni06B7.init" }, { "uni06B7.init.preAlef" } }, + { { "uni06B7.medi" }, { "uni06B7.medi.preAlef" } }, + { { "uni06B8.init" }, { "uni06B8.init.preAlef" } }, + { { "uni06B8.medi" }, { "uni06B8.medi.preAlef" } }, + { { "uni076A.init" }, { "uni076A.init.preAlef" } }, + { { "uni076A.medi" }, { "uni076A.medi.preAlef" } }, + } + }, + { "f3", "lu16", "arab", "*", "*", + new String[][][] { + { { "uni0622.fina" }, { "uni0622.fina.postLamIni" } }, + { { "uni0623.fina" }, { "uni0623.fina.postLamIni" } }, + { { "uni0625.fina" }, { "uni0625.fina.postLamIni" } }, + { { "uni0627.fina" }, { "uni0627.fina.postLamIni" } }, + { { "uni0671.fina" }, { "uni0671.fina.postLamIni" } }, + { { "uni0672.fina" }, { "uni0672.fina.postLamIni" } }, + { { "uni0673.fina" }, { "uni0673.fina.postLamIni" } }, + { { "uni0675.fina" }, { "uni0675.fina.postLamIni" } }, + } + }, + { "f3", "lu17", "arab", "*", "*", + new String[][][] { + { { "uni0622.fina" }, { "uni0622.fina.postLamMed" } }, + { { "uni0623.fina" }, { "uni0623.fina.postLamMed" } }, + { { "uni0625.fina" }, { "uni0625.fina.postLamMed" } }, + { { "uni0627.fina" }, { "uni0627.fina.postLamMed" } }, + { { "uni0671.fina" }, { "uni0671.fina.postLamMed" } }, + { { "uni0672.fina" }, { "uni0672.fina.postLamMed" } }, + { { "uni0673.fina" }, { "uni0673.fina.postLamMed" } }, + { { "uni0675.fina" }, { "uni0675.fina.postLamMed" } }, + } + }, + { "f3", "lu18", "arab", "*", "*", + new String[][][] { + { { "uni0601" }, { "uni0601.4" } }, + } + }, + { "f3", "lu19", "arab", "*", "*", + new String[][][] { + { { "uni0600" }, { "uni0600.3" } }, + { { "uni0601" }, { "uni0601.3" } }, + { { "uni0603" }, { "uni0603.3" } }, + { { "uni06DD" }, { "uni06DD.3" } }, + { { "uni06DD.alt" }, { "uni06DD.alt.3" } }, + { { "uni06DD.altB" }, { "uni06DD.altB.3" } }, + } + }, + { "f3", "lu20", "arab", "*", "*", + new String[][][] { + { { "uni0600" }, { "uni0600.2" } }, + { { "uni0601" }, { "uni0601.2" } }, + { { "uni0602" }, { "uni0602.2" } }, + { { "uni0603" }, { "uni0603.2" } }, + { { "uni06DD" }, { "uni06DD.2" } }, + { { "uni06DD.alt" }, { "uni06DD.alt.2" } }, + { { "uni06DD.altB" }, { "uni06DD.altB.2" } }, + } + }, + { "f3", "lu21", "arab", "*", "*", + new String[][][] { + { { "eight" }, { "eightMedium" } }, + { { "five" }, { "fiveMedium" } }, + { { "four" }, { "fourMedium" } }, + { { "nine" }, { "nineMedium" } }, + { { "one" }, { "oneMedium" } }, + { { "seven" }, { "sevenMedium" } }, + { { "six" }, { "sixMedium" } }, + { { "three" }, { "threeMedium" } }, + { { "two" }, { "twoMedium" } }, + { { "uni0660" }, { "uni0660.Medium" } }, + { { "uni0661" }, { "uni0661.Medium" } }, + { { "uni0662" }, { "uni0662.Medium" } }, + { { "uni0663" }, { "uni0663.Medium" } }, + { { "uni0664" }, { "uni0664.Medium" } }, + { { "uni0665" }, { "uni0665.Medium" } }, + { { "uni0666" }, { "uni0666.Medium" } }, + { { "uni0667" }, { "uni0667.Medium" } }, + { { "uni0668" }, { "uni0668.Medium" } }, + { { "uni0669" }, { "uni0669.Medium" } }, + { { "uni06F0" }, { "uni06F0.Medium" } }, + { { "uni06F1" }, { "uni06F1.Medium" } }, + { { "uni06F2" }, { "uni06F2.Medium" } }, + { { "uni06F3" }, { "uni06F3.Medium" } }, + { { "uni06F4" }, { "uni06F4.Medium" } }, + { { "uni06F4.urdu" }, { "uni06F4.Medium.urdu" } }, + { { "uni06F5" }, { "uni06F5.Medium" } }, + { { "uni06F6" }, { "uni06F6.Medium" } }, + { { "uni06F6.urdu" }, { "uni06F6.Medium.urdu" } }, + { { "uni06F7" }, { "uni06F7.Medium" } }, + { { "uni06F7.urdu" }, { "uni06F7.Medium.urdu" } }, + { { "uni06F8" }, { "uni06F8.Medium" } }, + { { "uni06F9" }, { "uni06F9.Medium" } }, + { { "zero" }, { "zeroMedium" } }, + } + }, + { "f3", "lu22", "arab", "*", "*", + new String[][][] { + { { "eight" }, { "eightSmall" } }, + { { "five" }, { "fiveSmall" } }, + { { "four" }, { "fourSmall" } }, + { { "nine" }, { "nineSmall" } }, + { { "one" }, { "oneSmall" } }, + { { "seven" }, { "sevenSmall" } }, + { { "six" }, { "sixSmall" } }, + { { "three" }, { "threeSmall" } }, + { { "two" }, { "twoSmall" } }, + { { "uni0660" }, { "uni0660.Small" } }, + { { "uni0661" }, { "uni0661.Small" } }, + { { "uni0662" }, { "uni0662.Small" } }, + { { "uni0663" }, { "uni0663.Small" } }, + { { "uni0664" }, { "uni0664.Small" } }, + { { "uni0665" }, { "uni0665.Small" } }, + { { "uni0666" }, { "uni0666.Small" } }, + { { "uni0667" }, { "uni0667.Small" } }, + { { "uni0668" }, { "uni0668.Small" } }, + { { "uni0669" }, { "uni0669.Small" } }, + { { "uni06F0" }, { "uni06F0.Small" } }, + { { "uni06F1" }, { "uni06F1.Small" } }, + { { "uni06F2" }, { "uni06F2.Small" } }, + { { "uni06F3" }, { "uni06F3.Small" } }, + { { "uni06F4" }, { "uni06F4.Small" } }, + { { "uni06F4.urdu" }, { "uni06F4.Small.urdu" } }, + { { "uni06F5" }, { "uni06F5.Small" } }, + { { "uni06F6" }, { "uni06F6.Small" } }, + { { "uni06F6.urdu" }, { "uni06F6.Small.urdu" } }, + { { "uni06F7" }, { "uni06F7.Small" } }, + { { "uni06F7.urdu" }, { "uni06F7.Small.urdu" } }, + { { "uni06F8" }, { "uni06F8.Small" } }, + { { "uni06F9" }, { "uni06F9.Small" } }, + { { "zero" }, { "zeroSmall" } }, + } + }, + { "f3", "lu23", "arab", "*", "*", + new String[][][] { + { { "uni0670" }, { "uni0670.large" } }, + } + }, + }; + + private static Object[][] ltMultiple = { + { GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_MULTIPLE }, + // arab-001.ttx + { "f0", "lu9", "arab", "*", "*", + new String[][][] { + { { "alefwithhamzabelow" }, { "arabicalef", "uni0655" } }, + } + }, + // arab-002.ttx + { "f1", "lu14", "arab", "*", "*", + new String[][][] { + { { "pehinitial" }, { "pehinitial", "tatweel" } }, + { { "yehwithhamzaaboveinitial" }, { "yehwithhamzaaboveinitial", "tatweel" } }, + { { "behinitial" }, { "behinitial", "tatweel" } }, + { { "tehinitial" }, { "tehinitial", "tatweel" } }, + { { "thehinitial" }, { "thehinitial", "tatweel" } }, + { { "fehinitial" }, { "fehinitial", "tatweel" } }, + { { "qafinitial" }, { "qafinitial", "tatweel" } }, + { { "nooninitial" }, { "nooninitial", "tatweel" } }, + { { "yehinitial" }, { "yehinitial", "tatweel" } }, + { { "uni0649.init" }, { "uni0649.init", "tatweel" } }, + } + }, + { "f1", "lu15", "arab", "*", "*", + new String[][][] { + { { "pehmedial" }, { "pehmedial", "tatweel" } }, + { { "yehwithhamzaabovemedial" }, { "yehwithhamzaabovemedial", "tatweel" } }, + { { "behmedial" }, { "behmedial", "tatweel" } }, + { { "tehmedial" }, { "tehmedial", "tatweel" } }, + { { "thehmedial" }, { "thehmedial", "tatweel" } }, + { { "noonmedial" }, { "noonmedial", "tatweel" } }, + { { "yehmedial" }, { "yehmedial", "tatweel" } }, + { { "uni0649.medi" }, { "uni0649.medi", "tatweel" } }, + } + }, + // arab-003.ttx + { "f2", "lu0", "arab", "dflt", "ccmp", + new String[][][] { + { { "uni0622" }, { "uni0627", "uni0653" } }, + { { "uni0623" }, { "uni0627", "uni0654" } }, + { { "uni0625" }, { "uni0627", "uni0655" } }, + { { "uni0626" }, { "uni064A", "uni0654" } }, + } + }, + // arab-004.ttx + { "f3", "lu0", "arab", "dflt", "ccmp", + new String[][][] { + { { "uni0622" }, { "uni0627", "uni0653" } }, + { { "uni0623" }, { "uni0627", "uni0654" } }, + { { "uni0625" }, { "uni0627", "uni0655" } }, + } + }, + }; + + private static Object[][] ltAlternate = { + { GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_ALTERNATE }, + // arab-001.ttx - none used + // arab-002.ttx - none used + // arab-003.ttx - none used + // arab-004.ttx - add tests + { "f3", "lu14", "arab", "dflt", "salt" }, + }; + + private static Object[][] ltLigature = { + { GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_LIGATURE }, + // arab-001.ttx + { "f0", "lu0", "arab", "dflt", "ccmp", + new String[][][] { + { { "damma", "shadda" }, { "shaddawithdammalow" } }, + { { "damma", "highhamza" }, { "dammaonhamza" } }, + { { "dammatan", "shadda" }, { "shaddawithdammatanlow" } }, + { { "dammatan", "highhamza" }, { "dammatanonhamza" } }, + { { "fatha", "shadda" }, { "shaddawithfathalow" } }, + { { "fatha", "highhamza" }, { "fathaonhamza" } }, + { { "fathatan", "shadda" }, { "shaddawithfathatanlow" } }, + { { "fathatan", "highhamza" }, { "fathatanonhamza" } }, + { { "highhamza", "fatha" }, { "fathaonhamza" } }, + { { "highhamza", "fathatan" }, { "fathatanonhamza" } }, + { { "highhamza", "sukun" }, { "sukunonhamza" } }, + { { "highhamza", "damma" }, { "dammaonhamza" } }, + { { "highhamza", "dammatan" }, { "dammatanonhamza" } }, + { { "kasra", "shadda" }, { "shaddawithkasralow" } }, + { { "kasra", "uni0655" }, { "uni06550650" } }, + { { "kasratan", "shadda" }, { "shaddawithkasratanlow" } }, + { { "kasratan", "uni0655" }, { "uni0655064D" } }, + { { "shadda", "dammatan" }, { "shaddawithdammatanlow" } }, + { { "shadda", "fatha" }, { "shaddawithfathalow" } }, + { { "shadda", "damma" }, { "shaddawithdammalow" } }, + { { "shadda", "fathatan" }, { "shaddawithfathatanlow" } }, + { { "shadda", "kasratan" }, { "shaddawithkasratanlow" } }, + { { "shadda", "kasra" }, { "shaddawithkasralow" } }, + { { "sukun", "highhamza" }, { "sukunonhamza" } }, + { { "uni0655", "kasratan" }, { "uni0655064D" } }, + { { "uni0655", "kasra" }, { "uni06550650" } }, + } + }, + { "f0", "lu7", "arab", "dflt", "rlig", + new String[][][] { + { { "lamisolated", "alefwithmaddaabovefinal" }, { "lamwithalefmaddaaboveisolatedd" } }, + { { "lamisolated", "alefwithhamzaabovefinal" }, { "lamwithalefhamzaaboveisolatedd" } }, + { { "lamisolated", "alefwithhamzabelowfinal" }, { "lamwithalefhamzabelowisolated" } }, + { { "lamisolated", "aleffinal" }, { "lamwithalefisolated" } }, + { { "lammedial", "alefwithmaddaabovefinal" }, { "lamwithalefmaddaabovefinal" } }, + { { "lammedial", "alefwithhamzaabovefinal" }, { "lamwithalefhamzaabovefinal" } }, + { { "lammedial", "alefwithhamzabelowfinal" }, { "lamwithalefhamzabelowfinal" } }, + { { "lammedial", "aleffinal" }, { "lamwithaleffinal" } }, + } + }, + { "f0", "lu8", "arab", "dflt", "liga", + new String[][][] { + { { "lamisolated", "lammedial", "hehfinal" }, { "allahisolated" } }, + { { "reh", "yehmedial", "aleffinal", "lam" }, { "rayaleflam" } }, + } + }, + // arab-002.ttx + { "f1", "lu0", "arab", "dflt", "ccmp", + new String[][][] { + { { "damma", "shadda" }, { "shaddawithdammaisolatedlow" } }, + { { "damma", "highhamza" }, { "dammaonhamza" } }, + { { "dammatan", "shadda" }, { "shaddawithdammatanisolatedlow" } }, + { { "dammatan", "highhamza" }, { "dammatanonhamza" } }, + { { "fatha", "shadda" }, { "shaddawithfathaisolatedlow" } }, + { { "fatha", "highhamza" }, { "fathaonhamza" } }, + { { "fathatan", "shadda" }, { "shaddawithfathatanisolatedlow" } }, + { { "fathatan", "highhamza" }, { "fathatanonhamza" } }, + { { "highhamza", "fatha" }, { "fathaonhamza" } }, + { { "highhamza", "fathatan" }, { "fathatanonhamza" } }, + { { "highhamza", "sukun" }, { "sukunonhamza" } }, + { { "highhamza", "damma" }, { "dammaonhamza" } }, + { { "highhamza", "dammatan" }, { "dammatanonhamza" } }, + { { "kasra", "shadda" }, { "shaddawithkasraisolatedlow" } }, + { { "kasra", "uni0655" }, { "uni06550650" } }, + { { "kasratan", "shadda" }, { "shaddawithkasratanisolatedlow" } }, + { { "kasratan", "uni0655" }, { "uni0655064D" } }, + { { "shadda", "dammatan" }, { "shaddawithdammatanisolatedlow" } }, + { { "shadda", "fatha" }, { "shaddawithfathaisolatedlow" } }, + { { "shadda", "damma" }, { "shaddawithdammaisolatedlow" } }, + { { "shadda", "fathatan" }, { "shaddawithfathatanisolatedlow" } }, + { { "shadda", "kasratan" }, { "shaddawithkasratanisolatedlow" } }, + { { "shadda", "kasra" }, { "shaddawithkasraisolatedlow" } }, + { { "sukun", "highhamza" }, { "sukunonhamza" } }, + { { "uni0655", "kasratan" }, { "uni0655064D" } }, + { { "uni0655", "kasra" }, { "uni06550650" } }, + } + }, + { "f1", "lu6", "arab", "dflt", "liga", + new String[][][] { + { { "behinitial", "hehmedial" }, { "behwithhehinitial" } }, + { { "behinitial", "meemfinal" }, { "behwithmeemisolated" } }, + { { "behinitial", "meemmedial" }, { "behwithmeeminitial" } }, + { { "behinitial", "alefmaksurafinal" }, { "behwithalefmaksuraisolated" } }, + { { "behinitial", "yehfinal" }, { "behwithyehisolated" } }, + { { "behinitial", "jeemmedial" }, { "behwithjeeminitial" } }, + { { "behinitial", "hahmedial" }, { "behwithhahinitial" } }, + { { "behinitial", "khahmedial" }, { "behwithkhahinitial" } }, + { { "behmedial", "alefmaksurafinal" }, { "behwithalefmaksurafinal" } }, + { { "behmedial", "yehfinal" }, { "behwithyehfinal" } }, + { { "behmedial", "rehfinal" }, { "behwithrehfinal" } }, + { { "behmedial", "noonfinal" }, { "behwithnoonfinal" } }, + { { "fehinitial", "alefmaksurafinal" }, { "fehwithalefmaksuraisolated" } }, + { { "fehinitial", "yehfinal" }, { "fehwithyehisolated" } }, + { { "hahinitial", "meemmedial" }, { "hahwithmeeminitial" } }, + { { "hehinitial", "meemmedial" }, { "hehwithmeeminitial" } }, + { { "jeeminitial", "meemmedial" }, { "jeemwithmeeminitial" } }, + { { "khahinitial", "meemmedial" }, { "khahwithmeeminitial" } }, + { { "laminitial", "jeemmedial" }, { "lamwithjeeminitial" } }, + { { "laminitial", "hahmedial" }, { "lamwithhahinitial" } }, + { { "laminitial", "khahmedial" }, { "lamwithkhahinitial" } }, + { { "laminitial", "hehmedial" }, { "lamwithhehinitial" } }, + { { "laminitial", "meemfinal" }, { "lamwithmeemisolated" } }, + { { "laminitial", "alefmaksurafinal" }, { "lamwithalefmaksuraisolated" } }, + { { "laminitial", "yehfinal" }, { "lamwithyehisolated" } }, + { { "meeminitial", "jeemmedial" }, { "meemwithjeeminitial" } }, + { { "meeminitial", "hahmedial" }, { "meemwithhahinitial" } }, + { { "meeminitial", "khahmedial" }, { "meemwithkhahinitial" } }, + { { "meeminitial", "meemmedial" }, { "meemwithmeeminitial" } }, + { { "nooninitial", "hehmedial" }, { "noonwithhehinitial" } }, + { { "nooninitial", "meemfinal" }, { "noonwithmeemisolated" } }, + { { "nooninitial", "meemmedial" }, { "noonwithmeeminitial" } }, + { { "nooninitial", "alefmaksurafinal" }, { "noonwithalefmaksuraisolated" } }, + { { "nooninitial", "yehfinal" }, { "noonwithyehisolated" } }, + { { "nooninitial", "jeemmedial" }, { "noonwithjeeminitial" } }, + { { "nooninitial", "hahmedial" }, { "noonwithhahinitial" } }, + { { "nooninitial", "khahmedial" }, { "noonwithkhahinitial" } }, + { { "noonmedial", "alefmaksurafinal" }, { "noonwithalefmaksurafinal" } }, + { { "noonmedial", "yehfinal" }, { "noonwithyehfinal" } }, + { { "pehinitial", "hehmedial" }, { "pehwithhehinitial" } }, + { { "seeninitial", "meemmedial" }, { "seenwithmeeminitial" } }, + { { "sheeninitial", "meemmedial" }, { "sheenwithmeeminitial" } }, + { { "tchehinitial", "meemmedial" }, { "uniE817" } }, + { { "tehinitial", "hehmedial" }, { "tehwithhehinitial" } }, + { { "tehinitial", "meemfinal" }, { "tehwithmeemisolated" } }, + { { "tehinitial", "meemmedial" }, { "tehwithmeeminitial" } }, + { { "tehinitial", "yehfinal" }, { "tehwithyehisolated" } }, + { { "tehinitial", "jeemmedial" }, { "tehwithjeeminitial" } }, + { { "tehinitial", "hahmedial" }, { "tehwithhahinitial" } }, + { { "tehinitial", "khahmedial" }, { "tehwithkhahinitial" } }, + { { "tehmedial", "alefmaksurafinal" }, { "tehwithalefmaksurafinal" } }, + { { "tehmedial", "yehfinal" }, { "tehwithyehfinal" } }, + { { "tehmedial", "rehfinal" }, { "noonwithzainfinal" } }, + { { "tehmedial", "noonfinal" }, { "tehwithnoonfinal" } }, + { { "thehinitial", "meemfinal" }, { "thehwithmeemisolated" } }, + { { "thehinitial", "meemmedial" }, { "thehwithmeeminitial" } }, + { { "yehinitial", "meemfinal" }, { "yehwithmeemisolated" } }, + { { "yehinitial", "meemmedial" }, { "yehwithmeeminitial" } }, + { { "yehinitial", "alefmaksurafinal" }, { "yehwithalefmaksuraisolated" } }, + { { "yehinitial", "jeemmedial" }, { "yehwithjeeminitial" } }, + { { "yehinitial", "hahmedial" }, { "yehwithhahinitial" } }, + { { "yehinitial", "khahmedial" }, { "yehwithkhahinitial" } }, + { { "yehmedial", "alefmaksurafinal" }, { "yehwithalefmaksurafinal" } }, + { { "yehmedial", "rehfinal" }, { "yehwithrehfinal" } }, + { { "yehmedial", "noonfinal" }, { "yehwithnoonfinal" } }, + } + }, + { "f1", "lu7", "arab", "dflt", "liga", + new String[][][] { + { { "laminitial", "meemmedial", "jeemmedial" }, { "lamwithmeemwithjeeminitial" } }, + { { "laminitial", "meemmedial", "hahmedial" }, { "lamwithmeemwithhahinitial" } }, + { { "laminitial", "meemmedial" }, { "lamwithmeeminitial" } }, + } + }, + { "f1", "lu8", "arab", "dflt", "liga", + new String[][][] { + { { "laminitial", "jeemfinal" }, { "lamwithjeemisolated" } }, + { { "laminitial", "hahfinal" }, { "lamwithhahisolated" } }, + { { "laminitial", "khahfinal" }, { "lamwithkhahisolated" } }, + } + }, + { "f1", "lu9", "arab", "dflt", "rlig", + new String[][][] { + { { "laminitial", "alefwithmaddaabovefinal" }, { "lamwithalefmaddaaboveisolatedd" } }, + { { "laminitial", "alefwithhamzaabovefinal" }, { "lamwithalefhamzaaboveisolatedd" } }, + { { "laminitial", "alefwithhamzabelowfinal" }, { "lamwithalefhamzabelowisolated" } }, + { { "laminitial", "aleffinal" }, { "lamwithalefisolated" } }, + { { "lammedial", "alefwithmaddaabovefinal" }, { "lamwithalefmaddaabovefinal" } }, + { { "lammedial", "alefwithhamzaabovefinal" }, { "lamwithalefhamzaabovefinal" } }, + { { "lammedial", "alefwithhamzabelowfinal" }, { "lamwithalefhamzabelowfinal" } }, + { { "lammedial", "aleffinal" }, { "lamwithaleffinal" } }, + } + }, + { "f1", "lu10", "arab", "dflt", "liga", + new String[][][] { + { { "laminitial", "lammedial", "hehfinal" }, { "allahisolated" } }, + { { "reh", "yehinitial", "aleffinal", "lam" }, { "rayaleflam" } }, + } + }, + // arab-003.ttx + { "f2", "lu5", "arab", "dflt", "rlig", + new String[][][] { + { { "uni064B", "uni0651" }, { "uni0651064B" } }, + { { "uni064C", "uni0651" }, { "uni0651064C" } }, + { { "uni064E", "uni0651" }, { "uni0651064E" } }, + { { "uni064F", "uni0651" }, { "uni0651064F" } }, + { { "uni0651", "uni064B" }, { "uni0651064B" } }, + { { "uni0651", "uni064C" }, { "uni0651064C" } }, + { { "uni0651", "uni064E" }, { "uni0651064E" } }, + { { "uni0651", "uni064F" }, { "uni0651064F" } }, + { { "uni0651", "uni0670" }, { "absShaddaAlef" } }, + { { "uni0670", "uni0651" }, { "absShaddaAlef" } }, + } + }, + { "f2", "lu6", "arab", "dflt", "rlig", + new String[][][] { + { { "uni064D", "uni0651" }, { "uni0651064D" } }, + { { "uni0650", "uni0651" }, { "uni06510650" } }, + { { "uni0651", "uni0650" }, { "uni06510650" } }, + { { "uni0651", "uni064D" }, { "uni0651064D" } }, + } + }, + { "f2", "lu7", "arab", "dflt", "rlig", + new String[][][] { + { { "uni0647", "uni0654" }, { "uni06C0" } }, + { { "uni0647.fina", "uni0654" }, { "uni06C0.fina" } }, + { { "uni0647.init", "uni0654" }, { "uni06C0.init" } }, + { { "uni0647.medi", "uni0654" }, { "uni06C0.medi" } }, + { { "uni0648", "uni0654" }, { "uni0624" } }, + { { "uni0648.fina", "uni0654" }, { "uni0624.fina" } }, + { { "uni064A", "uni0654" }, { "uni0626" } }, + { { "uni064A.fina", "uni0654" }, { "uni0626.fina" } }, + { { "uni064A.init", "uni0654" }, { "uni0626.init" } }, + { { "uni064A.medi", "uni0654" }, { "uni0626.medi" } }, + { { "uni06C1", "uni0654" }, { "uni06C2" } }, + { { "uni06C1.fina", "uni0654" }, { "uni06C2.fina" } }, + { { "uni06C1.init", "uni0654" }, { "uni06C2.init" } }, + { { "uni06C1.medi", "uni0654" }, { "uni06C2.medi" } }, + } + }, + // arab-004.ttx + { "f3", "lu5", "arab", "dflt", "rlig", + new String[][][] { + { { "uni064B", "uni0651" }, { "uni0651064B" } }, + { { "uni064C", "uni0651" }, { "uni0651064C" } }, + { { "uni064E", "uni0651" }, { "uni0651064E" } }, + { { "uni064F", "uni0651" }, { "uni0651064F" } }, + { { "uni0651", "uni064B" }, { "uni0651064B" } }, + { { "uni0651", "uni064C" }, { "uni0651064C" } }, + { { "uni0651", "uni064E" }, { "uni0651064E" } }, + { { "uni0651", "uni064F" }, { "uni0651064F" } }, + { { "uni0651", "uni0670" }, { "absShaddaAlef" } }, + { { "uni0670", "uni0651" }, { "absShaddaAlef" } }, + } + }, + { "f3", "lu6", "arab", "dflt", "rlig", + new String[][][] { + { { "uni064D", "uni0651" }, { "uni0651064D" } }, + { { "uni0650", "uni0651" }, { "uni06510650" } }, + { { "uni0651", "uni0650" }, { "uni06510650" } }, + { { "uni0651", "uni064D" }, { "uni0651064D" } }, + } + }, + { "f3", "lu7", "arab", "dflt", "rlig", + new String[][][] { + { { "uni0647", "uni0654" }, { "uni06C0" } }, + { { "uni0647.fina", "uni0654" }, { "uni06C0.fina" } }, + { { "uni0647.init", "uni0654" }, { "uni06C0.init" } }, + { { "uni0647.medi", "uni0654" }, { "uni06C0.medi" } }, + { { "uni0648", "uni0654" }, { "uni0624" } }, + { { "uni0648.fina", "uni0654" }, { "uni0624.fina" } }, + { { "uni064A", "uni0654" }, { "uni0626" } }, + { { "uni064A.fina", "uni0654" }, { "uni0626.fina" } }, + { { "uni064A.init", "uni0654" }, { "uni0626.init" } }, + { { "uni064A.medi", "uni0654" }, { "uni0626.medi" } }, + { { "uni06C1", "uni0654" }, { "uni06C2" } }, + { { "uni06C1.fina", "uni0654" }, { "uni06C2.fina" } }, + { { "uni06C1.init", "uni0654" }, { "uni06C2.init" } }, + { { "uni06C1.medi", "uni0654" }, { "uni06C2.medi" } }, + } + }, + { "f3", "lu8", "arab", "dflt", "rlig", + new String[][][] { + { { "uni064E", "uni0654" }, { "uni0654064E" } }, + { { "uni064F", "uni0654" }, { "uni0654064F" } }, + { { "uni0654", "uni064E" }, { "uni0654064E" } }, + { { "uni0654", "uni064F" }, { "uni0654064F" } }, + } + }, + }; + + private static Object[][] ltContextual = { + { GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_CONTEXTUAL }, + // arab-001.ttx - none used + // arab-002.ttx - none used + // arab-003.ttx - none used + // arab-004.ttx - none used + }; + + private static Object[][] ltChainedContextual = { + { GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_CHAINED_CONTEXTUAL }, + // arab-001.ttx + { "f0", "lu1", "arab", "dflt", "ccmp", + new String[][][] { + { { "wawwithhamzaabove", "alefwithhamzabelow" }, { "wawwithhamzaabove", "arabicalef", "uni0655" } }, + { { "reh", "alefwithhamzabelow" }, { "reh", "arabicalef", "uni0655" } }, + { { "zain", "alefwithhamzabelow" }, { "zain", "arabicalef", "uni0655" } }, + { { "waw", "alefwithhamzabelow" }, { "waw", "arabicalef", "uni0655" } }, + { { "jeh", "alefwithhamzabelow" }, { "jeh", "arabicalef", "uni0655" } }, + } + }, + { "f0", "lu3", "arab", "dflt", "isol", + new String[][][] { + { { "hamza", "heh" }, { "hamza", "hehisolated" } }, + { { "alefwithmaddaabove", "heh" }, { "alefwithmaddaabove", "hehisolated" } }, + { { "alefwithhamzaabove", "heh" }, { "alefwithhamzaabove", "hehisolated" } }, + { { "wawwithhamzaabove", "heh" }, { "wawwithhamzaabove", "hehisolated" } }, + { { "alefwithhamzabelow", "heh" }, { "alefwithhamzabelow", "hehisolated" } }, + { { "arabicalef", "heh" }, { "arabicalef", "hehisolated" } }, + { { "tehmarbuta", "heh" }, { "tehmarbuta", "hehisolated" } }, + { { "dal", "heh" }, { "dal", "hehisolated" } }, + { { "thal", "heh" }, { "thal", "hehisolated" } }, + { { "reh", "heh" }, { "reh", "hehisolated" } }, + { { "zain", "heh" }, { "zain", "hehisolated" } }, + { { "waw", "heh" }, { "waw", "hehisolated" } }, + { { "alefwasla", "heh" }, { "alefwasla", "hehisolated" } }, + { { "jeh", "heh" }, { "jeh", "hehisolated" } }, + { { "arabicae", "heh" }, { "arabicae", "hehisolated" } }, + { { "alefwaslafinal", "heh" }, { "alefwaslafinal", "hehisolated" } }, + { { "alefwithmaddaabovefinal", "heh" }, { "alefwithmaddaabovefinal", "hehisolated" } }, + { { "alefwithhamzaabovefinal", "heh" }, { "alefwithhamzaabovefinal", "hehisolated" } }, + { { "alefwithhamzabelowfinal", "heh" }, { "alefwithhamzabelowfinal", "hehisolated" } }, + { { "aleffinal", "heh" }, { "aleffinal", "hehisolated" } }, + { { "tehmarbutafinal", "heh" }, { "tehmarbutafinal", "hehisolated" } }, + { { "lamwithalefmaddaaboveisolatedd", "heh" }, { "lamwithalefmaddaaboveisolatedd", "hehisolated" } }, + { { "lamwithalefmaddaabovefinal", "heh" }, { "lamwithalefmaddaabovefinal", "hehisolated" } }, + { { "lamwithalefhamzaaboveisolatedd", "heh" }, { "lamwithalefhamzaaboveisolatedd", "hehisolated" } }, + { { "lamwithalefhamzaabovefinal", "heh" }, { "lamwithalefhamzaabovefinal", "hehisolated" } }, + { { "lamwithalefhamzabelowisolated", "heh" }, { "lamwithalefhamzabelowisolated", "hehisolated" } }, + { { "lamwithalefhamzabelowfinal", "heh" }, { "lamwithalefhamzabelowfinal", "hehisolated" } }, + { { "lamwithalefisolated", "heh" }, { "lamwithalefisolated", "hehisolated" } }, + { { "lamwithaleffinal", "heh" }, { "lamwithaleffinal", "hehisolated" } }, + } + }, + // arab-002.ttx + { "f1", "lu2", "arab", "dflt", "isol", + new String[][][] { + { { "hamza", "heh" }, { "hamza", "hehisolated" } }, + { { "alefwithmaddaabove", "heh" }, { "alefwithmaddaabove", "hehisolated" } }, + { { "alefwithhamzaabove", "heh" }, { "alefwithhamzaabove", "hehisolated" } }, + { { "wawwithhamzaabove", "heh" }, { "wawwithhamzaabove", "hehisolated" } }, + { { "alefwithhamzabelow", "heh" }, { "alefwithhamzabelow", "hehisolated" } }, + { { "arabicalef", "heh" }, { "arabicalef", "hehisolated" } }, + { { "tehmarbuta", "heh" }, { "tehmarbuta", "hehisolated" } }, + { { "dal", "heh" }, { "dal", "hehisolated" } }, + { { "thal", "heh" }, { "thal", "hehisolated" } }, + { { "reh", "heh" }, { "reh", "hehisolated" } }, + { { "zain", "heh" }, { "zain", "hehisolated" } }, + { { "waw", "heh" }, { "waw", "hehisolated" } }, + { { "alefwasla", "heh" }, { "alefwasla", "hehisolated" } }, + { { "jeh", "heh" }, { "jeh", "hehisolated" } }, + { { "arabicae", "heh" }, { "arabicae", "hehisolated" } }, + { { "alefwaslafinal", "heh" }, { "alefwaslafinal", "hehisolated" } }, + { { "alefwithmaddaabovefinal", "heh" }, { "alefwithmaddaabovefinal", "hehisolated" } }, + { { "alefwithhamzaabovefinal", "heh" }, { "alefwithhamzaabovefinal", "hehisolated" } }, + { { "alefwithhamzabelowfinal", "heh" }, { "alefwithhamzabelowfinal", "hehisolated" } }, + { { "aleffinal", "heh" }, { "aleffinal", "hehisolated" } }, + { { "tehmarbutafinal", "heh" }, { "tehmarbutafinal", "hehisolated" } }, + { { "lamwithalefmaddaaboveisolatedd", "heh" }, { "lamwithalefmaddaaboveisolatedd", "hehisolated" } }, + { { "lamwithalefmaddaabovefinal", "heh" }, { "lamwithalefmaddaabovefinal", "hehisolated" } }, + { { "lamwithalefhamzaaboveisolatedd", "heh" }, { "lamwithalefhamzaaboveisolatedd", "hehisolated" } }, + { { "lamwithalefhamzaabovefinal", "heh" }, { "lamwithalefhamzaabovefinal", "hehisolated" } }, + { { "lamwithalefhamzabelowisolated", "heh" }, { "lamwithalefhamzabelowisolated", "hehisolated" } }, + { { "lamwithalefhamzabelowfinal", "heh" }, { "lamwithalefhamzabelowfinal", "hehisolated" } }, + { { "lamwithalefisolated", "heh" }, { "lamwithalefisolated", "hehisolated" } }, + { { "lamwithaleffinal", "heh" }, { "lamwithaleffinal", "hehisolated" } }, + } + }, + { "f1", "lu11", "arab", "dflt", "calt", + new String[][][] { + { { "pehinitial", "fatha", "pehmedial", "fatha" }, { "pehinitial", "tatweel", "fatha", "pehmedial", "fatha" } }, + { { "yehwithhamzaaboveinitial", "damma", "vehmedial", "damma" }, { "yehwithhamzaaboveinitial", "tatweel", "damma", "vehmedial", "damma" } }, + { { "behinitial", "shadda", "jehfinal", "shadda" }, { "behinitial", "tatweel", "shadda", "jehfinal", "shadda" } }, + { { "tehinitial", "sukun", "behmedial", "sukun" }, { "tehinitial", "tatweel", "sukun", "behmedial", "sukun" } }, + { { "thehinitial", "smallhighmadda", "tehmedial", "smallhighmadda" }, { "thehinitial", "tatweel", "smallhighmadda", "tehmedial", "smallhighmadda" } }, + { { "fehinitial", "fathaonhamza", "ainmedial", "fathaonhamza" }, { "fehinitial", "tatweel", "fathaonhamza", "ainmedial", "fathaonhamza" } }, + { { "qafinitial", "dammaonhamza", "qafmedial", "dammaonhamza" }, { "qafinitial", "tatweel", "dammaonhamza", "qafmedial", "dammaonhamza" } }, + { { "nooninitial", "superscriptalef", "wawfinal", "superscriptalef" }, { "nooninitial", "tatweel", "superscriptalef", "wawfinal", "superscriptalef" } }, + { { "yehinitial", "dammatanonhamza", "rehfinal", "dammatanonhamza" }, { "yehinitial", "tatweel", "dammatanonhamza", "rehfinal", "dammatanonhamza" } }, + { { "uni0649.init", "uni0654", "wawwithhamzaabovefinal", "uni0654" }, { "uni0649.init", "tatweel", "uni0654", "wawwithhamzaabovefinal", "uni0654" } }, + } + }, + { "f1", "lu12", "arab", "dflt", "calt", + new String[][][] { + { { "pehmedial", "fatha", "pehmedial", "fatha" }, { "pehmedial", "tatweel", "fatha", "pehmedial", "fatha" } }, + { { "yehwithhamzaabovemedial", "damma", "vehmedial", "damma" }, { "yehwithhamzaabovemedial", "tatweel", "damma", "vehmedial", "damma" } }, + { { "behmedial", "shadda", "wawwithhamzaabovefinal", "shadda" }, { "behmedial", "tatweel", "shadda", "wawwithhamzaabovefinal", "shadda" } }, + { { "tehmedial", "sukun", "rehfinal", "sukun" }, { "tehmedial", "tatweel", "sukun", "rehfinal", "sukun" } }, + { { "thehmedial", "smallhighmadda", "zainfinal", "smallhighmadda" }, { "thehmedial", "tatweel", "smallhighmadda", "zainfinal", "smallhighmadda" } }, + { { "noonmedial", "superscriptalef", "ainmedial", "superscriptalef" }, { "noonmedial", "tatweel", "superscriptalef", "ainmedial", "superscriptalef" } }, + { { "yehmedial", "dammatanonhamza", "wawfinal", "dammatanonhamza" }, { "yehmedial", "tatweel", "dammatanonhamza", "wawfinal", "dammatanonhamza" } }, + { { "uni0649.medi", "uni0654", "yehmedial", "uni0654" }, { "uni0649.medi", "tatweel", "uni0654", "yehmedial", "uni0654" } }, + } + }, + // arab-003.ttx + { "f2", "lu4", "arab", "dflt", "rlig", + new String[][][] { + { { "uni0644.medi", "uni0622.fina" }, { "uni0644.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B5.medi", "uni0622.fina" }, { "uni06B5.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B6.medi", "uni0622.fina" }, { "uni06B6.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B7.medi", "uni0622.fina" }, { "uni06B7.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B8.medi", "uni0622.fina" }, { "uni06B8.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "absLamRetroMed", "uni0622.fina" }, { "absLamRetroMed.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni076A.medi", "uni0622.fina" }, { "uni076A.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni0644.init", "uni0622.fina" }, { "uni0644.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B5.init", "uni0622.fina" }, { "uni06B5.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B6.init", "uni0622.fina" }, { "uni06B6.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B7.init", "uni0622.fina" }, { "uni06B7.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B8.init", "uni0622.fina" }, { "uni06B8.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "absLamRetroIni", "uni0622.fina" }, { "absLamRetroIni.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni076A.init", "uni0622.fina" }, { "uni076A.init.preAlef", "uni0622.fina.postLamIni" } }, + } + }, + { "f2", "lu8", "arab", "dflt", "calt", + new String[][][] { + { { "uni064A", "uni0670" }, { "uni064A", "uni0670.large" } }, + } + }, + { "f2", "lu13", "arab", "dflt", "calt", + new String[][][] { + { { "uni06DD", "one" }, { "uni06DD", "oneMedium" } }, + { { "uni06DD", "one", "two" }, { "uni06DD.2", "oneMedium", "twoMedium" } }, + { { "uni06DD", "one", "two", "three" }, { "uni06DD.3", "oneSmall", "twoSmall", "threeSmall" } }, + } + }, + // arab-004.ttx + { "f3", "lu4", "arab", "dflt", "rlig", + new String[][][] { + { { "uni0644.medi", "uni0622.fina" }, { "uni0644.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B5.medi", "uni0622.fina" }, { "uni06B5.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B6.medi", "uni0622.fina" }, { "uni06B6.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B7.medi", "uni0622.fina" }, { "uni06B7.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni06B8.medi", "uni0622.fina" }, { "uni06B8.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "absLamRetroMed", "uni0622.fina" }, { "absLamRetroMed.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni076A.medi", "uni0622.fina" }, { "uni076A.medi.preAlef", "uni0622.fina.postLamMed" } }, + { { "uni0644.init", "uni0622.fina" }, { "uni0644.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B5.init", "uni0622.fina" }, { "uni06B5.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B6.init", "uni0622.fina" }, { "uni06B6.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B7.init", "uni0622.fina" }, { "uni06B7.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni06B8.init", "uni0622.fina" }, { "uni06B8.init.preAlef", "uni0622.fina.postLamIni" } }, + { { "absLamRetroIni", "uni0622.fina" }, { "absLamRetroIni.preAlef", "uni0622.fina.postLamIni" } }, + { { "uni076A.init", "uni0622.fina" }, { "uni076A.init.preAlef", "uni0622.fina.postLamIni" } }, + } + }, + { "f3", "lu9", "arab", "dflt", "calt", + new String[][][] { + { { "uni0601", "uni0661" }, { "uni0601", "uni0661.Medium" } }, + { { "uni0601", "uni0661", "uni0662" }, { "uni0601.2", "uni0661.Medium", "uni0662.Medium" } }, + { { "uni0601", "uni0661", "uni0662", "uni0663" }, { "uni0601.3", "uni0661.Medium", "uni0662.Medium", "uni0663.Medium", } }, + { { "uni0601", "uni0661", "uni0662", "uni0663", "uni0664" }, { "uni0601.4", "uni0661.Medium", "uni0662.Medium", "uni0663.Medium", "uni0664.Medium" } }, + } + }, + { "f3", "lu10", "arab", "dflt", "calt", + new String[][][] { + { { "uni064A", "uni0670" }, { "uni064A", "uni0670.large" } }, + } + }, + }; + + @Test + public void testGSUBSingle() throws Exception { + performSubstitutions ( ltSingle ); + } + + @Test + public void testGSUBMultiple() throws Exception { + performSubstitutions ( ltMultiple ); + } + + @Test + public void testGSUBAlternate() throws Exception { + performSubstitutions ( ltAlternate ); + } + + @Test + public void testGSUBLigature() throws Exception { + performSubstitutions ( ltLigature ); + } + + @Test + public void testGSUBContextual() throws Exception { + performSubstitutions ( ltContextual ); + } + + @Test + public void testGSUBChainedContextual() throws Exception { + performSubstitutions ( ltChainedContextual ); + } + + /** + * Perform substitutions on all test data in test specification TS. + * @param ts test specification + */ + private void performSubstitutions ( Object[][] ts ) { + assert ts.length > 0; + Object[] tp = ts[0]; + for ( int i = 1; i < ts.length; i++ ) { + performSubstitutions ( tp, ts[i] ); + } + } + + /** + * Perform substitutions on all test data TD using test parameters TP. + * @param tp test parameters + * @param td test data + */ + private void performSubstitutions ( Object[] tp, Object[] td ) { + assert tp.length > 0; + if ( td.length > 5 ) { + String fid = (String) td[0]; + String lid = (String) td[1]; + String script = (String) td[2]; + String language = (String) td[3]; + String feature = (String) td[4]; + TTXFile tf = findTTX ( fid ); + assertTrue ( tf != null ); + GlyphSubstitutionTable gsub = tf.getGSUB(); + assertTrue ( gsub != null ); + GlyphSubstitutionSubtable[] sta = findGSUBSubtables ( gsub, script, language, feature, lid ); + assertTrue ( sta != null ); + assertTrue ( sta.length > 0 ); + ScriptContextTester sct = findScriptContextTester ( script, language, feature ); + String[][][] tia = (String[][][]) td[5]; // test instance array + for ( String[][] ti : tia ) { // test instance + if ( ti != null ) { + if ( ti.length > 1 ) { // must have at least input and output glyph id arrays + String[] igia = ti[0]; // input glyph id array + String[] ogia = ti[1]; // output glyph id array + GlyphSequence igs = tf.getGlyphSequence ( igia ); + GlyphSequence ogs = tf.getGlyphSequence ( ogia ); + GlyphSequence tgs = GlyphSubstitutionSubtable.substitute ( igs, script, language, feature, sta, sct ); + assertSameGlyphs ( ogs, tgs ); + } + } + } + } + } + + private String findTTXPath ( String fid ) { + for ( String[] fs : ttxFonts ) { + if ( ( fs != null ) && ( fs.length > 1 ) ) { + if ( fs[0].equals ( fid ) ) { + return ttxFilesRoot + File.separator + fs[1]; + } + } + } + return null; + } + + private TTXFile findTTX ( String fid ) { + String pn = findTTXPath ( fid ); + assertTrue ( pn != null ); + try { + TTXFile tf = TTXFile.getFromCache ( pn ); + return tf; + } catch ( Exception e ) { + fail ( e.getMessage() ); + return null; + } + } + + private GlyphSubstitutionSubtable[] findGSUBSubtables ( GlyphSubstitutionTable gsub, String script, String language, String feature, String lid ) { + LookupTable lt = gsub.getLookupTable ( lid ); + if ( lt != null ) { + return (GlyphSubstitutionSubtable[]) lt.getSubtables(); + } else { + return null; + } + } + + private ScriptContextTester findScriptContextTester ( String script, String language, String feature ) { + return this; + } + + @Override + public GlyphContextTester getTester ( String feature ) { + return this; + } + + @Override + public boolean test ( String script, String language, String feature, GlyphSequence gs, int index ) { + return true; + } + + private void assertSameGlyphs ( GlyphSequence gs1, GlyphSequence gs2 ) { + assertNotNull ( gs1 ); + assertNotNull ( gs2 ); + IntBuffer gb1 = gs1.getGlyphs(); + IntBuffer gb2 = gs2.getGlyphs(); + assertEquals ( "unequal glyph count", gb1.limit(), gb2.limit() ); + for ( int i = 0; i < gb1.limit(); i++ ) { + int g1 = gb1.get(i); + int g2 = gb2.get(i); + assertEquals ( "unequal glyph code", g1, g2 ); + } + } + +}
diff --git a/test/java/org/apache/fop/complexscripts/scripts/ScriptsTestSuite.java b/test/java/org/apache/fop/complexscripts/scripts/ScriptsTestSuite.java index 60accab..27cc926 100644 --- a/test/java/org/apache/fop/complexscripts/scripts/ScriptsTestSuite.java +++ b/test/java/org/apache/fop/complexscripts/scripts/ScriptsTestSuite.java
@@ -19,27 +19,18 @@ package org.apache.fop.complexscripts.scripts; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; -import org.apache.fop.complexscripts.arabic.ArabicScriptTestSuite; +import org.apache.fop.complexscripts.arabic.ArabicTestCase; /** * Test suite for script specific functionality related to complex scripts. */ +@RunWith(Suite.class) +@SuiteClasses({ + ArabicTestCase.class +}) public class ScriptsTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for script specific functionality."); - //$JUnit-BEGIN$ - suite.addTest(ArabicScriptTestSuite.suite()); - //$JUnit-END$ - return suite; - } - }
diff --git a/test/java/org/apache/fop/complexscripts/util/TTXFile.java b/test/java/org/apache/fop/complexscripts/util/TTXFile.java index 45ff898..6dcb87a 100644 --- a/test/java/org/apache/fop/complexscripts/util/TTXFile.java +++ b/test/java/org/apache/fop/complexscripts/util/TTXFile.java
@@ -22,6 +22,20 @@ import java.io.File; import java.io.IOException; +import java.nio.IntBuffer; + +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Stack; +import java.util.TreeMap; +import java.util.Vector; + import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; @@ -30,11 +44,29 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.fop.fonts.GlyphClassTable; +import org.apache.fop.fonts.GlyphCoverageTable; +import org.apache.fop.fonts.GlyphDefinitionSubtable; import org.apache.fop.fonts.GlyphDefinitionTable; -import org.apache.fop.fonts.GlyphSubstitutionTable; +import org.apache.fop.fonts.GlyphMappingTable; +import org.apache.fop.fonts.GlyphPositioningSubtable; import org.apache.fop.fonts.GlyphPositioningTable; +import org.apache.fop.fonts.GlyphPositioningTable.Anchor; +import org.apache.fop.fonts.GlyphPositioningTable.MarkAnchor; +import org.apache.fop.fonts.GlyphPositioningTable.PairValues; +import org.apache.fop.fonts.GlyphPositioningTable.Value; +import org.apache.fop.fonts.GlyphSequence; +import org.apache.fop.fonts.GlyphSubstitutionSubtable; +import org.apache.fop.fonts.GlyphSubstitutionTable; +import org.apache.fop.fonts.GlyphSubstitutionTable.Ligature; +import org.apache.fop.fonts.GlyphSubstitutionTable.LigatureSet; +import org.apache.fop.fonts.GlyphSubtable; +import org.apache.fop.fonts.GlyphTable; +import org.apache.fop.fonts.GlyphTable.RuleLookup; +import org.apache.fop.util.CharUtilities; import org.xml.sax.Attributes; +import org.xml.sax.Locator; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -55,8 +87,7 @@ * copyright restrictions, it is not possible to include most opentype (or truetype) font * files directly in the FOP distribution. In such cases, <code>TTX</code> files are used * to distribute a subset of the complex script advanced table information contained in - * certain font files to facilitate testing. This can be done because no glyph outline or - * other proprietary information is included in the distributed <code>TTX</code> files. + * certain font files to facilitate testing. * * @author Glenn Adams */ @@ -64,14 +95,143 @@ /** logging instance */ private static final Log log = LogFactory.getLog(TTXFile.class); // CSOK: ConstantNameCheck + /** default script tag */ + private static final String DEFAULT_SCRIPT_TAG = "dflt"; + /** default language tag */ + private static final String DEFAULT_LANGUAGE_TAG = "dflt"; + + /** ttxfile cache */ + private static Map<String,TTXFile> cache = new HashMap<String,TTXFile>(); + + // transient parsing state + private Locator locator; // current document locator + private Stack<String[]> elements; // stack of ttx elements being parsed + private Map<String,Integer> glyphIds; // map of glyph names to glyph identifiers + private List<int[]> cmapEntries; // list of <charCode,glyphCode> pairs + private Vector<int[]> hmtxEntries; // vector of <width,lsb> pairs + private Map<String,Integer> glyphClasses; // map of glyph names to glyph classes + private Map<String,Map<String,List<String>>> scripts; // map of script tag to Map<language-tag,List<features-id>>> + private Map<String,List<String>> languages; // map of language tag to List<feature-id> + private Map<String,Object[]> features; // map of feature id to Object[2] : { feature-tag, List<lookup-id> } + private List<String> languageFeatures; // list of language system feature ids, where first is (possibly null) required feature id + private List<String> featureLookups; // list of lookup ids for feature being constructed + private List<Integer> coverageEntries; // list of entries for coverage table being constructed + private Map<String,GlyphCoverageTable> coverages; // map of coverage table keys to coverage tables + private List subtableEntries; // list of lookup subtable entries + private List<GlyphSubtable> subtables; // list of constructed subtables + private List<Integer> alternates; // list of alternates in alternate set being constructed + private List<Ligature> ligatures; // list of ligatures in ligature set being constructed + private List<Integer> substitutes; // list of substitutes in (multiple substitution) sequence being constructed + private List<PairValues> pairs; // list of pair value records being constructed + private List<PairValues[]> pairSets; // list of pair value sets (as arrays) being constructed + private List<Anchor> anchors; // list of anchors of base|mark|component record being constructed + private List<Anchor[]> components; // list of ligature component anchors being constructed + private List<MarkAnchor> markAnchors; // list of mark anchors being constructed + private List<Anchor[]> baseOrMarkAnchors; // list of base|mark2 anchors being constructed + private List<Anchor[][]> ligatureAnchors; // list of ligature anchors being constructed + private List<Anchor[]> attachmentAnchors; // list of entry|exit attachment anchors being constructed + private List<RuleLookup> ruleLookups; // list of rule lookups being constructed + private int glyphIdMax; // maximum glyph id + private int cmPlatform; // plaform id of cmap being constructed + private int cmEncoding; // plaform id of cmap being constructed + private int cmLanguage; // plaform id of cmap being constructed + private int flIndex; // index of feature being constructed + private int flSequence; // feature sequence within feature list + private int ltIndex; // index of lookup table being constructed + private int ltSequence; // lookup sequence within table + private int ltFlags; // flags of current lookup being constructed + private int stSequence; // subtable sequence number within lookup + private int stFormat; // format of current subtable being constructed + private int ctFormat; // format of coverage table being constructed + private int ctIndex; // index of coverage table being constructed + private int rlSequence; // rule lookup sequence index + private int rlLookup; // rule lookup lookup index + private int psIndex; // pair set index + private int vf1; // value format 1 (used with pair pos and single pos) + private int vf2; // value format 2 (used with pair pos) + private int g2; // glyph id 2 (used with pair pos) + private int xCoord; // x coordinate of anchor being constructed + private int yCoord; // y coordinate of anchor being constructed + private int markClass; // mark class of mark anchor being constructed + private String defaultScriptTag; // tag of default script + private String scriptTag; // tag of script being constructed + private String defaultLanguageTag; // tag of default language system + private String languageTag; // tag of language system being constructed + private String featureTag; // tag of feature being constructed + private Value v1; // positioining value 1 + private Value v2; // positioining value 2 + + // resultant state + private int upem; // units per em + private Map<Integer,Integer> cmap; // constructed character map + private Map<Integer,Integer> gmap; // constructed glyph map + private int[][] hmtx; // constructed horizontal metrics - array of design { width, lsb } pairs, indexed by glyph code + private int[] widths; // pdf normalized widths (millipoints) + private GlyphDefinitionTable gdef; // constructed glyph definition table + private GlyphSubstitutionTable gsub; // constructed glyph substitution table + private GlyphPositioningTable gpos; // constructed glyph positioning table public TTXFile() { + elements = new Stack<String[]>(); + glyphIds = new HashMap<String,Integer>(); + cmapEntries = new ArrayList<int[]>(); + hmtxEntries = new Vector<int[]>(); + glyphClasses = new HashMap<String,Integer>(); + scripts = new HashMap<String,Map<String,List<String>>>(); + languages = new HashMap<String,List<String>>(); + features = new HashMap<String,Object[]>(); + languageFeatures = new ArrayList<String>(); + featureLookups = new ArrayList<String>(); + coverageEntries = new ArrayList<Integer>(); + coverages = new HashMap<String,GlyphCoverageTable>(); + subtableEntries = new ArrayList(); + subtables = new ArrayList<GlyphSubtable>(); + alternates = new ArrayList<Integer>(); + ligatures = new ArrayList<Ligature>(); + substitutes = new ArrayList<Integer>(); + pairs = new ArrayList<PairValues>(); + pairSets = new ArrayList<PairValues[]>(); + anchors = new ArrayList<Anchor>(); + markAnchors = new ArrayList<MarkAnchor>(); + baseOrMarkAnchors = new ArrayList<Anchor[]>(); + ligatureAnchors = new ArrayList<Anchor[][]>(); + components = new ArrayList<Anchor[]>(); + attachmentAnchors = new ArrayList<Anchor[]>(); + ruleLookups = new ArrayList<RuleLookup>(); + glyphIdMax = -1; + cmPlatform = -1; + cmEncoding = -1; + cmLanguage = -1; + flIndex = -1; + flSequence = 0; + ltIndex = -1; + ltSequence = 0; + ltFlags = 0; + stSequence = 0; + stFormat = 0; + ctFormat = -1; + ctIndex = -1; + rlSequence = -1; + rlLookup = -1; + psIndex = -1; + vf1 = -1; + vf2 = -1; + g2 = -1; + xCoord = Integer.MIN_VALUE; + yCoord = Integer.MIN_VALUE; + markClass = -1; + defaultScriptTag = DEFAULT_SCRIPT_TAG; + scriptTag = null; + defaultLanguageTag = DEFAULT_LANGUAGE_TAG; + languageTag = null; + featureTag = null; + v1 = null; + v2 = null; + upem = -1; } - public void parse ( String filename ) { parse ( new File ( filename ) ); } - public void parse ( File f ) { assert f != null; try { @@ -88,7 +248,129 @@ throw new RuntimeException ( e.getMessage() ); } } - + public GlyphSequence mapCharsToGlyphs ( String s ) { + Integer[] ca = CharUtilities.toUTF32 ( s, 0, true ); + int ng = ca.length; + IntBuffer cb = IntBuffer.allocate ( ng ); + IntBuffer gb = IntBuffer.allocate ( ng ); + for ( Integer c : ca ) { + int g = mapCharToGlyph ( (int) c ); + if ( g >= 0 ) { + cb.put ( c ); + gb.put ( g ); + } else { + throw new IllegalArgumentException ( "character " + CharUtilities.format ( c ) + " has no corresponding glyph" ); + } + } + cb.rewind(); + gb.rewind(); + return new GlyphSequence ( cb, gb, null ); + } + public int mapCharToGlyph ( int c ) { + if ( cmap != null ) { + Integer g = cmap.get ( Integer.valueOf ( c ) ); + if ( g != null ) { + return (int) g; + } else { + return -1; + } + } else { + return -1; + } + } + public int getGlyph ( String gid ) { + return mapGlyphId0 ( gid ); + } + public GlyphSequence getGlyphSequence ( String[] gids ) { + assert gids != null; + int ng = gids.length; + IntBuffer cb = IntBuffer.allocate ( ng ); + IntBuffer gb = IntBuffer.allocate ( ng ); + for ( String gid : gids ) { + int g = mapGlyphId0 ( gid ); + if ( g >= 0 ) { + int c = mapGlyphIdToChar ( gid ); + if ( c < 0 ) { + c = CharUtilities.NOT_A_CHARACTER; + } + cb.put ( c ); + gb.put ( g ); + } else { + throw new IllegalArgumentException ( "unmapped glyph id \"" + gid + "\"" ); + } + } + cb.rewind(); + gb.rewind(); + return new GlyphSequence ( cb, gb, null ); + } + public int[] getWidths ( String[] gids ) { + assert gids != null; + int ng = gids.length; + int[] widths = new int [ ng ]; + int i = 0; + for ( String gid : gids ) { + int g = mapGlyphId0 ( gid ); + int w = 0; + if ( g >= 0 ) { + if ( ( hmtx != null ) && ( g < hmtx.length ) ) { + int[] mtx = hmtx [ g ]; + assert mtx != null; + assert mtx.length > 0; + w = mtx[0]; + } + } + widths [ i++ ] = w; + } + assert i == ng; + return widths; + } + public int[] getWidths() { + if ( this.widths == null ) { + if ( ( hmtx != null ) && ( upem > 0 ) ) { + int[] widths = new int [ hmtx.length ]; + for ( int i = 0, n = widths.length; i < n; i++ ) { + widths [ i ] = getPDFWidth ( hmtx [ i ] [ 0 ], upem ); + } + this.widths = widths; + } + } + return this.widths; + } + public static int getPDFWidth ( int tw, int upem ) { + // N.B. The following is copied (with minor edits) from TTFFile to insure same results + int pw; + if ( tw < 0 ) { + long rest1 = tw % upem; + long storrest = 1000 * rest1; + long ledd2 = ( storrest != 0 ) ? ( rest1 / storrest ) : 0; + pw = - ( ( -1000 * tw ) / upem - (int) ledd2 ); + } else { + pw = ( tw / upem ) * 1000 + ( ( tw % upem ) * 1000 ) / upem; + } + return pw; + } + public GlyphDefinitionTable getGDEF() { + return gdef; + } + public GlyphSubstitutionTable getGSUB() { + return gsub; + } + public GlyphPositioningTable getGPOS() { + return gpos; + } + public static synchronized TTXFile getFromCache ( String filename ) { + assert cache != null; + TTXFile f; + if ( ( f = (TTXFile) cache.get ( filename ) ) == null ) { + f = new TTXFile(); + f.parse ( filename ); + cache.put ( filename, f ); + } + return f; + } + public static synchronized void clearCache() { + cache.clear(); + } private class Handler extends DefaultHandler { private Handler() { } @@ -99,168 +381,3069 @@ public void endDocument() { } @Override - public void startElement ( String uri, String localName, String qName, Attributes attrs ) - throws SAXException { - if ( qName.equals ( "Alternate" ) ) { - } else if ( qName.equals ( "AlternateSet" ) ) { - } else if ( qName.equals ( "AlternateSubst" ) ) { - } else if ( qName.equals ( "BacktrackCoverage" ) ) { - } else if ( qName.equals ( "BaseAnchor" ) ) { - } else if ( qName.equals ( "BaseArray" ) ) { - } else if ( qName.equals ( "BaseCoverage" ) ) { - } else if ( qName.equals ( "BaseRecord" ) ) { - } else if ( qName.equals ( "ChainContextPos" ) ) { - } else if ( qName.equals ( "ChainContextSubst" ) ) { - } else if ( qName.equals ( "Class" ) ) { - } else if ( qName.equals ( "ClassDef" ) ) { - // child of GlyphClassDef - // child of MarkAttachClassDef - } else if ( qName.equals ( "ComponentRecord" ) ) { - } else if ( qName.equals ( "Coverage" ) ) { - // child of LigCaretList - // child of MultipleSubst - // child of CursivePos - } else if ( qName.equals ( "CursivePos" ) ) { - } else if ( qName.equals ( "DefaultLangSys" ) ) { - } else if ( qName.equals ( "EntryAnchor" ) ) { - } else if ( qName.equals ( "EntryExitRecord" ) ) { - } else if ( qName.equals ( "ExitAnchor" ) ) { - } else if ( qName.equals ( "Feature" ) ) { - } else if ( qName.equals ( "FeatureIndex" ) ) { - // child of DefaultLangSys - // child of LangSys - } else if ( qName.equals ( "FeatureList" ) ) { - // child of GSUB - // child of GPOS - } else if ( qName.equals ( "FeatureRecord" ) ) { - } else if ( qName.equals ( "FeatureTag" ) ) { - } else if ( qName.equals ( "GDEF" ) ) { - } else if ( qName.equals ( "GPOS" ) ) { - } else if ( qName.equals ( "GSUB" ) ) { - } else if ( qName.equals ( "Glyph" ) ) { - // child of Coverage - // child of InputCoverage - // child of LookAheadCoverage - // child of BacktrackCoverage - // child of MarkCoverage - // child of Mark1Coverage - // child of Mark2Coverage - // child of BaseCoverage - // child of LigatureCoverage - } else if ( qName.equals ( "GlyphClassDef" ) ) { - } else if ( qName.equals ( "GlyphID" ) ) { - } else if ( qName.equals ( "GlyphOrder" ) ) { - } else if ( qName.equals ( "InputCoverage" ) ) { - } else if ( qName.equals ( "LangSys" ) ) { - } else if ( qName.equals ( "LangSysRecord" ) ) { - } else if ( qName.equals ( "LangSysTag" ) ) { - } else if ( qName.equals ( "LigCaretList" ) ) { - } else if ( qName.equals ( "Ligature" ) ) { - } else if ( qName.equals ( "LigatureAnchor" ) ) { - } else if ( qName.equals ( "LigatureArray" ) ) { - } else if ( qName.equals ( "LigatureAttach" ) ) { - } else if ( qName.equals ( "LigatureCoverage" ) ) { - } else if ( qName.equals ( "LigatureSet" ) ) { - } else if ( qName.equals ( "LigatureSubst" ) ) { - } else if ( qName.equals ( "LookAheadCoverage" ) ) { - } else if ( qName.equals ( "Lookup" ) ) { - } else if ( qName.equals ( "LookupFlag" ) ) { - } else if ( qName.equals ( "LookupList" ) ) { - // child of GSUB - // child of GPOS - } else if ( qName.equals ( "LookupListIndex" ) ) { - // child of Feature - // child of SubstLookupRecord - } else if ( qName.equals ( "LookupType" ) ) { - } else if ( qName.equals ( "Mark1Array" ) ) { - } else if ( qName.equals ( "Mark1Coverage" ) ) { - } else if ( qName.equals ( "Mark2Anchor" ) ) { - } else if ( qName.equals ( "Mark2Array" ) ) { - } else if ( qName.equals ( "Mark2Coverage" ) ) { - } else if ( qName.equals ( "Mark2Record" ) ) { - } else if ( qName.equals ( "MarkAnchor" ) ) { - } else if ( qName.equals ( "MarkArray" ) ) { - } else if ( qName.equals ( "MarkAttachClassDef" ) ) { - } else if ( qName.equals ( "MarkBasePos" ) ) { - } else if ( qName.equals ( "MarkCoverage" ) ) { - } else if ( qName.equals ( "MarkLigPos" ) ) { - } else if ( qName.equals ( "MarkMarkPos" ) ) { - } else if ( qName.equals ( "MarkRecord" ) ) { - } else if ( qName.equals ( "MultipleSubst" ) ) { - } else if ( qName.equals ( "PairPos" ) ) { - } else if ( qName.equals ( "PairSet" ) ) { - } else if ( qName.equals ( "PairValueRecord" ) ) { - } else if ( qName.equals ( "PosLookupRecord" ) ) { - } else if ( qName.equals ( "ReqFeatureIndex" ) ) { - // child of DefaultLangSys - // child of LangSys - } else if ( qName.equals ( "Script" ) ) { - } else if ( qName.equals ( "ScriptList" ) ) { - // child of GSUB - // child of GPOS - } else if ( qName.equals ( "ScriptRecord" ) ) { - } else if ( qName.equals ( "ScriptTag" ) ) { - } else if ( qName.equals ( "SecondGlyph" ) ) { - } else if ( qName.equals ( "Sequence" ) ) { - } else if ( qName.equals ( "SequenceIndex" ) ) { - } else if ( qName.equals ( "SinglePos" ) ) { - } else if ( qName.equals ( "SingleSubst" ) ) { - } else if ( qName.equals ( "SubstLookupRecord" ) ) { - } else if ( qName.equals ( "Substitute" ) ) { - } else if ( qName.equals ( "Substitution" ) ) { - } else if ( qName.equals ( "Value" ) ) { - } else if ( qName.equals ( "Value1" ) ) { - } else if ( qName.equals ( "Value2" ) ) { - } else if ( qName.equals ( "ValueFormat" ) ) { - } else if ( qName.equals ( "ValueFormat1" ) ) { - } else if ( qName.equals ( "ValueFormat2" ) ) { - } else if ( qName.equals ( "Version" ) ) { - // child of GDEF - // child of GSUB - // child of GPOS - } else if ( qName.equals ( "XCoordinate" ) ) { - // child of EntryAnchor - // child of MarkAnchor - } else if ( qName.equals ( "YCoordinate" ) ) { - // child of EntryAnchor - // child of MarkAnchor - // child of BaseAnchor - } else if ( qName.equals ( "checkSumAdjustment" ) ) { - } else if ( qName.equals ( "cmap" ) ) { - } else if ( qName.equals ( "cmap_format_0" ) ) { - } else if ( qName.equals ( "cmap_format_4" ) ) { - } else if ( qName.equals ( "created" ) ) { - } else if ( qName.equals ( "flags" ) ) { - } else if ( qName.equals ( "fontDirectionHint" ) ) { - } else if ( qName.equals ( "fontRevision" ) ) { - } else if ( qName.equals ( "glyphDataFormat" ) ) { - } else if ( qName.equals ( "head" ) ) { - } else if ( qName.equals ( "hmtx" ) ) { - } else if ( qName.equals ( "indexToLocFormat" ) ) { - } else if ( qName.equals ( "lowestRecPPEM" ) ) { - } else if ( qName.equals ( "macStyle" ) ) { - } else if ( qName.equals ( "magicNumber" ) ) { - } else if ( qName.equals ( "map" ) ) { - } else if ( qName.equals ( "modified" ) ) { - } else if ( qName.equals ( "mtx" ) ) { - } else if ( qName.equals ( "tableVersion" ) ) { - } else if ( qName.equals ( "tableVersion" ) ) { - } else if ( qName.equals ( "ttFont" ) ) { - } else if ( qName.equals ( "unitsPerEm" ) ) { - } else if ( qName.equals ( "xMax" ) ) { - } else if ( qName.equals ( "xMin" ) ) { - } else if ( qName.equals ( "yMax" ) ) { - } else if ( qName.equals ( "yMin" ) ) { - } else { - throw new SAXException ( "unknown element type {" + uri + "," + qName + "}" ); - } + public void setDocumentLocator ( Locator locator ) { + TTXFile.this.locator = locator; } @Override - public void endElement ( String uri, String localName, String qName ) { + public void startElement ( String uri, String localName, String qName, Attributes attrs ) throws SAXException { + String[] en = makeExpandedName ( uri, localName, qName ); + if ( en[0] != null ) { + unsupportedElement ( en ); + } else if ( en[1].equals ( "Alternate" ) ) { + String[] pn = new String[] { null, "AlternateSet" }; + if ( isParent ( pn ) ) { + String glyph = attrs.getValue ( "glyph" ); + if ( glyph == null ) { + missingRequiredAttribute ( en, "glyph" ); + } + int gid = mapGlyphId ( glyph, en ); + alternates.add ( Integer.valueOf ( gid ) ); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "AlternateSet" ) ) { + String[] pn = new String[] { null, "AlternateSubst" }; + if ( isParent ( pn ) ) { + String glyph = attrs.getValue ( "glyph" ); + if ( glyph == null ) { + missingRequiredAttribute ( en, "glyph" ); + } + int gid = mapGlyphId ( glyph, en ); + coverageEntries.add ( Integer.valueOf ( gid ) ); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "AlternateSubst" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = 1; + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "BacktrackCoverage" ) ) { + String[] pn1 = new String[] { null, "ChainContextSubst" }; + String[] pn2 = new String[] { null, "ChainContextPos" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + int ci = -1; + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + ci = Integer.parseInt ( index ); + } + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = ci; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "BaseAnchor" ) ) { + String[] pn = new String[] { null, "BaseRecord" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } + assert xCoord == Integer.MIN_VALUE; + assert yCoord == Integer.MIN_VALUE; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "BaseArray" ) ) { + String[] pn = new String[] { null, "MarkBasePos" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "BaseCoverage" ) ) { + String[] pn = new String[] { null, "MarkBasePos" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "BaseRecord" ) ) { + String[] pn = new String[] { null, "BaseArray" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ChainContextPos" ) || en[1].equals ( "ChainContextSubst" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + case 2: + case 3: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Class" ) ) { + String[] pn = new String[] { null, "MarkRecord" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + int v = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + v = Integer.parseInt ( value ); + } + assert markClass == -1; + markClass = v; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ClassDef" ) ) { + String[] pn1 = new String[] { null, "GlyphClassDef" }; + String[] pn2 = new String[] { null, "MarkAttachClassDef" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String glyph = attrs.getValue ( "glyph" ); + if ( glyph == null ) { + missingRequiredAttribute ( en, "glyph" ); + } + String glyphClass = attrs.getValue ( "class" ); + if ( glyphClass == null ) { + missingRequiredAttribute ( en, "class" ); + } + if ( ! glyphIds.containsKey ( glyph ) ) { + unsupportedGlyph ( en, glyph ); + } else if ( isParent ( pn1 ) ) { + if ( glyphClasses.containsKey ( glyph ) ) { + duplicateGlyphClass ( en, glyph, glyphClass ); + } else { + glyphClasses.put ( glyph, Integer.parseInt(glyphClass) ); + } + } else if ( isParent ( pn2 ) ) { + if ( glyphClasses.containsKey ( glyph ) ) { + duplicateGlyphClass ( en, glyph, glyphClass ); + } else { + glyphClasses.put ( glyph, Integer.parseInt(glyphClass) ); + } + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "ComponentRecord" ) ) { + String[] pn = new String[] { null, "LigatureAttach" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + assert anchors.size() == 0; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Coverage" ) ) { + String[] pn1 = new String[] { null, "CursivePos" }; + String[] pn2 = new String[] { null, "LigCaretList" }; + String[] pn3 = new String[] { null, "MultipleSubst" }; + String[] pn4 = new String[] { null, "PairPos" }; + String[] pn5 = new String[] { null, "SinglePos" }; + String[][] pnx = new String[][] { pn1, pn2, pn3, pn4, pn5 }; + if ( isParent ( pnx ) ) { + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "CursivePos" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + assert attachmentAnchors.size() == 0; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "DefaultLangSys" ) ) { + String[] pn = new String[] { null, "Script" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } else { + assertLanguageFeaturesClear(); + assert languageTag == null; + languageTag = defaultLanguageTag; + } + } else if ( en[1].equals ( "EntryAnchor" ) ) { + String[] pn = new String[] { null, "EntryExitRecord" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } + assert xCoord == Integer.MIN_VALUE; + assert yCoord == Integer.MIN_VALUE; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "EntryExitRecord" ) ) { + String[] pn = new String[] { null, "CursivePos" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ExitAnchor" ) ) { + String[] pn = new String[] { null, "EntryExitRecord" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } + assert xCoord == Integer.MIN_VALUE; + assert yCoord == Integer.MIN_VALUE; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Feature" ) ) { + String[] pn = new String[] { null, "FeatureRecord" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } else { + assertFeatureLookupsClear(); + } + } else if ( en[1].equals ( "FeatureIndex" ) ) { + String[] pn1 = new String[] { null, "DefaultLangSys" }; + String[] pn2 = new String[] { null, "LangSys" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String value = attrs.getValue ( "value" ); + int v = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + v = Integer.parseInt ( value ); + } + if ( languageFeatures.size() == 0 ) { + languageFeatures.add ( null ); + } + if ( ( v >= 0 ) && ( v < 65535 ) ) { + languageFeatures.add ( makeFeatureId ( v ) ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "FeatureList" ) ) { + String[] pn1 = new String[] { null, "GSUB" }; + String[] pn2 = new String[] { null, "GPOS" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( ! isParent ( pnx ) ) { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "FeatureRecord" ) ) { + String[] pn = new String[] { null, "FeatureList" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + int fi = -1; + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + fi = Integer.parseInt ( index ); + } + assertFeatureClear(); + assert flIndex == -1; + flIndex = fi; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "FeatureTag" ) ) { + String[] pn = new String[] { null, "FeatureRecord" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + assert featureTag == null; + featureTag = value; + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "GDEF" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( isParent ( pn ) ) { + assertSubtablesClear(); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "GPOS" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( isParent ( pn ) ) { + assertCoveragesClear(); + assertSubtablesClear(); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "GSUB" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( isParent ( pn ) ) { + assertCoveragesClear(); + assertSubtablesClear(); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Glyph" ) ) { + String[] pn1 = new String[] { null, "Coverage" }; + String[] pn2 = new String[] { null, "InputCoverage" }; + String[] pn3 = new String[] { null, "LookAheadCoverage" }; + String[] pn4 = new String[] { null, "BacktrackCoverage" }; + String[] pn5 = new String[] { null, "MarkCoverage" }; + String[] pn6 = new String[] { null, "Mark1Coverage" }; + String[] pn7 = new String[] { null, "Mark2Coverage" }; + String[] pn8 = new String[] { null, "BaseCoverage" }; + String[] pn9 = new String[] { null, "LigatureCoverage" }; + String[][] pnx = new String[][] { pn1, pn2, pn3, pn4, pn5, pn6, pn7, pn8, pn9 }; + if ( isParent ( pnx ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + int gid = mapGlyphId ( value, en ); + coverageEntries.add ( Integer.valueOf ( gid ) ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "GlyphClassDef" ) ) { + String[] pn = new String[] { null, "GDEF" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + // force format 1 since TTX always writes entries as non-range entries + if ( sf != 1 ) { + sf = 1; + } + stFormat = sf; + assert glyphClasses.isEmpty(); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "GlyphID" ) ) { + String[] pn = new String[] { null, "GlyphOrder" }; + if ( isParent ( pn ) ) { + String id = attrs.getValue ( "id" ); + int gid = -1; + if ( id == null ) { + missingRequiredAttribute ( en, "id" ); + } else { + gid = Integer.parseInt ( id ); + } + String name = attrs.getValue ( "name" ); + if ( name == null ) { + missingRequiredAttribute ( en, "name" ); + } + if ( glyphIds.containsKey ( name ) ) { + duplicateGlyph ( en, name, gid ); + } else { + if ( gid > glyphIdMax ) { + glyphIdMax = gid; + } + glyphIds.put ( name, gid ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "GlyphOrder" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "InputCoverage" ) ) { + String[] pn1 = new String[] { null, "ChainContextSubst" }; + String[] pn2 = new String[] { null, "ChainContextPos" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + int ci = -1; + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + ci = Integer.parseInt ( index ); + } + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = ci; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "LangSys" ) ) { + String[] pn = new String[] { null, "LangSysRecord" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } else { + assertLanguageFeaturesClear(); + } + } else if ( en[1].equals ( "LangSysRecord" ) ) { + String[] pn = new String[] { null, "Script" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LangSysTag" ) ) { + String[] pn = new String[] { null, "LangSysRecord" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + assert languageTag == null; + languageTag = value; + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigCaretList" ) ) { + String[] pn = new String[] { null, "GDEF" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Ligature" ) ) { + String[] pn = new String[] { null, "LigatureSet" }; + if ( isParent ( pn ) ) { + String components = attrs.getValue ( "components" ); + if ( components == null ) { + missingRequiredAttribute ( en, "components" ); + } + int[] cids = mapGlyphIds ( components, en ); + String glyph = attrs.getValue ( "glyph" ); + if ( glyph == null ) { + missingRequiredAttribute ( en, "glyph" ); + } + int gid = mapGlyphId ( glyph, en ); + ligatures.add ( new Ligature ( gid, cids ) ); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigatureAnchor" ) ) { + String[] pn = new String[] { null, "ComponentRecord" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } + assert xCoord == Integer.MIN_VALUE; + assert yCoord == Integer.MIN_VALUE; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigatureArray" ) ) { + String[] pn = new String[] { null, "MarkLigPos" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigatureAttach" ) ) { + String[] pn = new String[] { null, "LigatureArray" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + assert components.size() == 0; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigatureCoverage" ) ) { + String[] pn = new String[] { null, "MarkLigPos" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigatureSet" ) ) { + String[] pn = new String[] { null, "LigatureSubst" }; + if ( isParent ( pn ) ) { + String glyph = attrs.getValue ( "glyph" ); + if ( glyph == null ) { + missingRequiredAttribute ( en, "glyph" ); + } + int gid = mapGlyphId ( glyph, en ); + coverageEntries.add ( Integer.valueOf ( gid ) ); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LigatureSubst" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = 1; + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LookAheadCoverage" ) ) { + String[] pn1 = new String[] { null, "ChainContextSubst" }; + String[] pn2 = new String[] { null, "ChainContextPos" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + int ci = -1; + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + ci = Integer.parseInt ( index ); + } + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = ci; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "Lookup" ) ) { + String[] pn = new String[] { null, "LookupList" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + int li = -1; + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + li = Integer.parseInt ( index ); + } + assertLookupClear(); + assert ltIndex == -1; + ltIndex = li; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LookupFlag" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + int lf = 0; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + lf = Integer.parseInt ( value ); + } + assert ltFlags == 0; + ltFlags = lf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "LookupList" ) ) { + String[] pn1 = new String[] { null, "GSUB" }; + String[] pn2 = new String[] { null, "GPOS" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( ! isParent ( pnx ) ) { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "LookupListIndex" ) ) { + String[] pn1 = new String[] { null, "Feature" }; + String[] pn2 = new String[] { null, "SubstLookupRecord" }; + String[] pn3 = new String[] { null, "PosLookupRecord" }; + String[][] pnx = new String[][] { pn1, pn2, pn3 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + String value = attrs.getValue ( "value" ); + int v = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + v = Integer.parseInt ( value ); + } + String[][] pny = new String[][] { pn2, pn3 }; + if ( isParent ( pny ) ) { + assert rlLookup == -1; + assert v != -1; + rlLookup = v; + } else { + featureLookups.add ( makeLookupId ( v ) ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "LookupType" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Mark1Array" ) ) { + String[] pn = new String[] { null, "MarkMarkPos" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Mark1Coverage" ) ) { + String[] pn = new String[] { null, "MarkMarkPos" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Mark2Anchor" ) ) { + String[] pn = new String[] { null, "Mark2Record" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } + assert xCoord == Integer.MIN_VALUE; + assert yCoord == Integer.MIN_VALUE; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Mark2Array" ) ) { + String[] pn = new String[] { null, "MarkMarkPos" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Mark2Coverage" ) ) { + String[] pn = new String[] { null, "MarkMarkPos" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Mark2Record" ) ) { + String[] pn = new String[] { null, "Mark2Array" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "MarkAnchor" ) ) { + String[] pn = new String[] { null, "MarkRecord" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } + assert xCoord == Integer.MIN_VALUE; + assert yCoord == Integer.MIN_VALUE; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "MarkArray" ) ) { + String[] pn1 = new String[] { null, "MarkBasePos" }; + String[] pn2 = new String[] { null, "MarkLigPos" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( ! isParent ( pnx ) ) { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "MarkAttachClassDef" ) ) { + String[] pn = new String[] { null, "GDEF" }; + if ( isParent ( pn ) ) { + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + // force format 1 since TTX always writes entries as non-range entries + if ( sf != 1 ) { + sf = 1; + } + stFormat = sf; + assert glyphClasses.isEmpty(); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "MarkBasePos" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + assert markAnchors.size() == 0; + assert baseOrMarkAnchors.size() == 0; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "MarkCoverage" ) ) { + String[] pn1 = new String[] { null, "MarkBasePos" }; + String[] pn2 = new String[] { null, "MarkLigPos" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String format = attrs.getValue ( "Format" ); + int cf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + cf = Integer.parseInt ( format ); + switch ( cf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, cf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = cf; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "MarkLigPos" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + assert markAnchors.size() == 0; + assert ligatureAnchors.size() == 0; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "MarkMarkPos" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + assert markAnchors.size() == 0; + assert baseOrMarkAnchors.size() == 0; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "MarkRecord" ) ) { + String[] pn1 = new String[] { null, "MarkArray" }; + String[] pn2 = new String[] { null, "Mark1Array" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "MultipleSubst" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "PairPos" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "PairSet" ) ) { + String[] pn = new String[] { null, "PairPos" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + int psi = -1; + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + psi = Integer.parseInt ( index ); + } + assert psIndex == -1; + psIndex = psi; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "PairValueRecord" ) ) { + String[] pn = new String[] { null, "PairSet" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + assertPairClear(); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "PosLookupRecord" ) ) { + String[] pn1 = new String[] { null, "ChainContextSubst" }; + String[] pn2 = new String[] { null, "ChainContextPos" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "ReqFeatureIndex" ) ) { + String[] pn1 = new String[] { null, "DefaultLangSys" }; + String[] pn2 = new String[] { null, "LangSys" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String value = attrs.getValue ( "value" ); + int v = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + v = Integer.parseInt ( value ); + } + String fid; + if ( ( v >= 0 ) && ( v < 65535 ) ) { + fid = makeFeatureId ( v ); + } else { + fid = null; + } + assertLanguageFeaturesClear(); + languageFeatures.add ( fid ); + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "Script" ) ) { + String[] pn = new String[] { null, "ScriptRecord" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ScriptList" ) ) { + String[] pn1 = new String[] { null, "GSUB" }; + String[] pn2 = new String[] { null, "GPOS" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( ! isParent ( pnx ) ) { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "ScriptRecord" ) ) { + String[] pn = new String[] { null, "ScriptList" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ScriptTag" ) ) { + String[] pn = new String[] { null, "ScriptRecord" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + assert scriptTag == null; + scriptTag = value; + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "SecondGlyph" ) ) { + String[] pn = new String[] { null, "PairValueRecord" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + int gid = mapGlyphId ( value, en ); + assert g2 == -1; + g2 = gid; + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Sequence" ) ) { + String[] pn = new String[] { null, "MultipleSubst" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + int i = Integer.parseInt ( index ); + if ( i != subtableEntries.size() ) { + invalidIndex ( en, i, subtableEntries.size() ); + } + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "SequenceIndex" ) ) { + String[] pn1 = new String[] { null, "PosLookupRecord" }; + String[] pn2 = new String[] { null, "SubstLookupRecord" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String value = attrs.getValue ( "value" ); + int v = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + v = Integer.parseInt ( value ); + } + assert rlSequence == -1; + assert v != -1; + rlSequence = v; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "SinglePos" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "SingleSubst" ) ) { + String[] pn = new String[] { null, "Lookup" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + String format = attrs.getValue ( "Format" ); + int sf = -1; + if ( format == null ) { + missingRequiredAttribute ( en, "Format" ); + } else { + sf = Integer.parseInt ( format ); + switch ( sf ) { + case 1: + case 2: + break; + default: + unsupportedFormat ( en, sf ); + break; + } + } + assertCoverageClear(); + ctIndex = 0; + ctFormat = 1; + assertSubtableClear(); + assert sf >= 0; + stFormat = sf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "SubstLookupRecord" ) ) { + String[] pn = new String[] { null, "ChainContextSubst" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Substitute" ) ) { + String[] pn = new String[] { null, "Sequence" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( index == null ) { + missingRequiredAttribute ( en, "index" ); + } else { + int i = Integer.parseInt ( index ); + if ( i != substitutes.size() ) { + invalidIndex ( en, i, substitutes.size() ); + } + } + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + int gid = mapGlyphId ( value, en ); + substitutes.add ( Integer.valueOf ( gid ) ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Substitution" ) ) { + String[] pn = new String[] { null, "SingleSubst" }; + if ( isParent ( pn ) ) { + String in = attrs.getValue ( "in" ); + int igid = -1; + int ogid = -1; + if ( in == null ) { + missingRequiredAttribute ( en, "in" ); + } else { + igid = mapGlyphId ( in, en ); + } + String out = attrs.getValue ( "out" ); + if ( out == null ) { + missingRequiredAttribute ( en, "out" ); + } else { + ogid = mapGlyphId ( out, en ); + } + coverageEntries.add ( Integer.valueOf ( igid ) ); + subtableEntries.add ( Integer.valueOf ( ogid ) ); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Value" ) ) { + String[] pn = new String[] { null, "SinglePos" }; + if ( isParent ( pn ) ) { + String index = attrs.getValue ( "index" ); + if ( vf1 < 0 ) { + missingParameter ( en, "value format" ); + } else { + subtableEntries.add ( parseValue ( en, attrs, vf1 ) ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Value1" ) ) { + String[] pn = new String[] { null, "PairValueRecord" }; + if ( isParent ( pn ) ) { + if ( vf1 < 0 ) { + missingParameter ( en, "value format 1" ); + } else { + assert v1 == null; + v1 = parseValue ( en, attrs, vf1 ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Value2" ) ) { + String[] pn = new String[] { null, "PairValueRecord" }; + if ( isParent ( pn ) ) { + if ( vf2 < 0 ) { + missingParameter ( en, "value format 2" ); + } else { + assert v2 == null; + v2 = parseValue ( en, attrs, vf2 ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ValueFormat" ) ) { + String[] pn = new String[] { null, "SinglePos" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + int vf = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + vf = Integer.parseInt ( value ); + } + assert vf1 == -1; + vf1 = vf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ValueFormat1" ) ) { + String[] pn = new String[] { null, "PairPos" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + int vf = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + vf = Integer.parseInt ( value ); + } + assert vf1 == -1; + vf1 = vf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "ValueFormat2" ) ) { + String[] pn = new String[] { null, "PairPos" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + int vf = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + vf = Integer.parseInt ( value ); + } + assert vf2 == -1; + vf2 = vf; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "Version" ) ) { + String[] pn1 = new String[] { null, "GDEF" }; + String[] pn2 = new String[] { null, "GPOS" }; + String[] pn3 = new String[] { null, "GSUB" }; + String[][] pnx = new String[][] { pn1, pn2, pn3 }; + if ( isParent ( pnx ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "XCoordinate" ) ) { + String[] pn1 = new String[] { null, "BaseAnchor" }; + String[] pn2 = new String[] { null, "EntryAnchor" }; + String[] pn3 = new String[] { null, "ExitAnchor" }; + String[] pn4 = new String[] { null, "LigatureAnchor" }; + String[] pn5 = new String[] { null, "MarkAnchor" }; + String[] pn6 = new String[] { null, "Mark2Anchor" }; + String[][] pnx = new String[][] { pn1, pn2, pn3, pn4, pn5, pn6 }; + if ( isParent ( pnx ) ) { + String value = attrs.getValue ( "value" ); + int x = 0; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + x = Integer.parseInt ( value ); + } + assert xCoord == Integer.MIN_VALUE; + xCoord = x; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "YCoordinate" ) ) { + String[] pn1 = new String[] { null, "BaseAnchor" }; + String[] pn2 = new String[] { null, "EntryAnchor" }; + String[] pn3 = new String[] { null, "ExitAnchor" }; + String[] pn4 = new String[] { null, "LigatureAnchor" }; + String[] pn5 = new String[] { null, "MarkAnchor" }; + String[] pn6 = new String[] { null, "Mark2Anchor" }; + String[][] pnx = new String[][] { pn1, pn2, pn3, pn4, pn5, pn6 }; + if ( isParent ( pnx ) ) { + String value = attrs.getValue ( "value" ); + int y = 0; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + y = Integer.parseInt ( value ); + } + assert yCoord == Integer.MIN_VALUE; + yCoord = y; + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "checkSumAdjustment" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "cmap" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "cmap_format_0" ) ) { + String[] pn = new String[] { null, "cmap" }; + if ( isParent ( pn ) ) { + String platformID = attrs.getValue ( "platformID" ); + if ( platformID == null ) { + missingRequiredAttribute ( en, "platformID" ); + } + String platEncID = attrs.getValue ( "platEncID" ); + if ( platEncID == null ) { + missingRequiredAttribute ( en, "platEncID" ); + } + String language = attrs.getValue ( "language" ); + if ( language == null ) { + missingRequiredAttribute ( en, "language" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "cmap_format_4" ) ) { + String[] pn = new String[] { null, "cmap" }; + if ( isParent ( pn ) ) { + String platformID = attrs.getValue ( "platformID" ); + int pid = -1; + if ( platformID == null ) { + missingRequiredAttribute ( en, "platformID" ); + } else { + pid = Integer.parseInt ( platformID ); + } + String platEncID = attrs.getValue ( "platEncID" ); + int eid = -1; + if ( platEncID == null ) { + missingRequiredAttribute ( en, "platEncID" ); + } else { + eid = Integer.parseInt ( platEncID ); + } + String language = attrs.getValue ( "language" ); + int lid = -1; + if ( language == null ) { + missingRequiredAttribute ( en, "language" ); + } else { + lid = Integer.parseInt ( language ); + } + assert cmapEntries.size() == 0; + assert cmPlatform == -1; + assert cmEncoding == -1; + assert cmLanguage == -1; + cmPlatform = pid; + cmEncoding = eid; + cmLanguage = lid; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "created" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "flags" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "fontDirectionHint" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "fontRevision" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "glyphDataFormat" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "head" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "hmtx" ) ) { + String[] pn = new String[] { null, "ttFont" }; + if ( ! isParent ( pn ) ) { + notPermittedInElementContext ( en, getParent(), pn ); + } else if ( glyphIdMax > 0 ) { + hmtxEntries.setSize ( glyphIdMax + 1 ); + } + } else if ( en[1].equals ( "indexToLocFormat" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "lowestRecPPEM" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "macStyle" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "magicNumber" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "map" ) ) { + String[] pn1 = new String[] { null, "cmap_format_0" }; + String[] pn2 = new String[] { null, "cmap_format_4" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pnx ) ) { + String code = attrs.getValue ( "code" ); + int cid = -1; + if ( code == null ) { + missingRequiredAttribute ( en, "code" ); + } else { + code = code.toLowerCase(); + if ( code.startsWith ( "0x" ) ) { + cid = Integer.parseInt ( code.substring ( 2 ), 16 ); + } else { + cid = Integer.parseInt ( code, 10 ); + } + } + String name = attrs.getValue ( "name" ); + int gid = -1; + if ( name == null ) { + missingRequiredAttribute ( en, "name" ); + } else { + gid = mapGlyphId ( name, en ); + } + if ( ( cmPlatform == 3 ) && ( cmEncoding == 1 ) ) { + cmapEntries.add ( new int[] { cid, gid } ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "modified" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "mtx" ) ) { + String[] pn = new String[] { null, "hmtx" }; + if ( isParent ( pn ) ) { + String name = attrs.getValue ( "name" ); + int gid = -1; + if ( name == null ) { + missingRequiredAttribute ( en, "name" ); + } else { + gid = mapGlyphId ( name, en ); + } + String width = attrs.getValue ( "width" ); + int w = -1; + if ( width == null ) { + missingRequiredAttribute ( en, "width" ); + } else { + w = Integer.parseInt ( width ); + } + String lsb = attrs.getValue ( "lsb" ); + int l = -1; + if ( lsb == null ) { + missingRequiredAttribute ( en, "lsb" ); + } else { + l = Integer.parseInt ( lsb ); + } + hmtxEntries.set ( gid, new int[] { w, l } ); + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "tableVersion" ) ) { + String[] pn1 = new String[] { null, "cmap" }; + String[] pn2 = new String[] { null, "head" }; + String[][] pnx = new String[][] { pn1, pn2 }; + if ( isParent ( pn1 ) ) { // child of cmap + String version = attrs.getValue ( "version" ); + if ( version == null ) { + missingRequiredAttribute ( en, "version" ); + } + } else if ( isParent ( pn2 ) ) { // child of head + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pnx ); + } + } else if ( en[1].equals ( "ttFont" ) ) { + String[] pn = new String[] { null, null }; + if ( isParent ( pn ) ) { + String sfntVersion = attrs.getValue ( "sfntVersion" ); + if ( sfntVersion == null ) { + missingRequiredAttribute ( en, "sfntVersion" ); + } + String ttLibVersion = attrs.getValue ( "ttLibVersion" ); + if ( ttLibVersion == null ) { + missingRequiredAttribute ( en, "ttLibVersion" ); + } + } else { + notPermittedInElementContext ( en, getParent(), null ); + } + } else if ( en[1].equals ( "unitsPerEm" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + int v = -1; + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } else { + v = Integer.parseInt ( value ); + } + assert upem == -1; + upem = v; + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "xMax" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "xMin" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "yMax" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else if ( en[1].equals ( "yMin" ) ) { + String[] pn = new String[] { null, "head" }; + if ( isParent ( pn ) ) { + String value = attrs.getValue ( "value" ); + if ( value == null ) { + missingRequiredAttribute ( en, "value" ); + } + } else { + notPermittedInElementContext ( en, getParent(), pn ); + } + } else { + unsupportedElement ( en ); + } + elements.push ( en ); + } + @Override + public void endElement ( String uri, String localName, String qName ) throws SAXException { + if ( elements.empty() ) { + throw new SAXException ( "element stack is unbalanced, no elements on stack!" ); + } + String[] enParent = elements.peek(); + if ( enParent == null ) { + throw new SAXException ( "element stack is empty, elements are not balanced" ); + } + String[] en = makeExpandedName ( uri, localName, qName ); + if ( ! sameExpandedName ( enParent, en ) ) { + throw new SAXException ( "element stack is unbalanced, expanded name mismatch" ); + } + if ( en[0] != null ) { + unsupportedElement ( en ); + } else if ( isAnchorElement ( en[1] ) ) { + if ( xCoord == Integer.MIN_VALUE ) { + missingParameter ( en, "x coordinate" ); + } else if ( yCoord == Integer.MIN_VALUE ) { + missingParameter ( en, "y coordinate" ); + } else { + if ( en[1].equals ( "EntryAnchor" ) ) { + if ( anchors.size() > 0 ) { + duplicateParameter ( en, "entry anchor" ); + } + } else if ( en[1].equals ( "ExitAnchor" ) ) { + if ( anchors.size() > 1 ) { + duplicateParameter ( en, "exit anchor" ); + } else if ( anchors.size() == 0 ) { + anchors.add ( null ); + } + } + anchors.add ( new GlyphPositioningTable.Anchor ( xCoord, yCoord ) ); + xCoord = yCoord = Integer.MIN_VALUE; + } + } else if ( en[1].equals ( "AlternateSet" ) ) { + subtableEntries.add ( extractAlternates() ); + } else if ( en[1].equals ( "AlternateSubst" ) ) { + if ( ! sortEntries ( coverageEntries, subtableEntries ) ) { + mismatchedEntries ( en, coverageEntries.size(), subtableEntries.size() ); + } + addGSUBSubtable ( GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_ALTERNATE, extractCoverage() ); + } else if ( en[1].equals ( "BacktrackCoverage" ) ) { + String ck = makeCoverageKey ( "bk", ctIndex ); + if ( coverages.containsKey ( ck ) ) { + duplicateCoverageIndex ( en, ctIndex ); + } else { + coverages.put ( ck, extractCoverage() ); + } + } else if ( en[1].equals ( "BaseCoverage" ) ) { + coverages.put ( "base", extractCoverage() ); + } else if ( en[1].equals ( "BaseRecord" ) ) { + baseOrMarkAnchors.add ( extractAnchors() ); + } else if ( en[1].equals ( "ChainContextPos" ) || en[1].equals ( "ChainContextSubst" ) ) { + GlyphCoverageTable coverage = null; + if ( stFormat == 3 ) { + GlyphCoverageTable igca[] = getCoveragesWithPrefix ( "in" ); + GlyphCoverageTable bgca[] = getCoveragesWithPrefix ( "bk" ); + GlyphCoverageTable lgca[] = getCoveragesWithPrefix ( "la" ); + if ( ( igca.length == 0 ) || hasMissingCoverage ( igca ) ) { + missingCoverage ( en, "input", igca.length ); + } else if ( hasMissingCoverage ( bgca ) ) { + missingCoverage ( en, "backtrack", bgca.length ); + } else if ( hasMissingCoverage ( lgca ) ) { + missingCoverage ( en, "lookahead", lgca.length ); + } else { + GlyphTable.Rule r = new GlyphTable.ChainedCoverageSequenceRule ( extractRuleLookups(), igca.length, igca, bgca, lgca ); + GlyphTable.RuleSet rs = new GlyphTable.HomogeneousRuleSet ( new GlyphTable.Rule[] {r} ); + GlyphTable.RuleSet[] rsa = new GlyphTable.RuleSet[] {rs}; + coverage = igca [ 0 ]; + subtableEntries.add ( rsa ); + } + } else { + unsupportedFormat ( en, stFormat ); + } + if ( en[1].equals ( "ChainContextPos" ) ) { + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_CHAINED_CONTEXTUAL, coverage ); + } else if ( en[1].equals ( "ChainContextSubst" ) ) { + addGSUBSubtable ( GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_CHAINED_CONTEXTUAL, coverage ); + } + } else if ( en[1].equals ( "ComponentRecord" ) ) { + components.add ( extractAnchors() ); + } else if ( en[1].equals ( "Coverage" ) ) { + coverages.put ( "main", extractCoverage() ); + } else if ( en[1].equals ( "DefaultLangSys" ) || en[1].equals ( "LangSysRecord" ) ) { + if ( languageTag == null ) { + missingTag ( en, "language" ); + } else if ( languages.containsKey ( languageTag ) ) { + duplicateTag ( en, "language", languageTag ); + } else { + languages.put ( languageTag, extractLanguageFeatures() ); + languageTag = null; + } + } else if ( en[1].equals ( "CursivePos" ) ) { + GlyphCoverageTable ct = coverages.get ( "main" ); + if ( ct == null ) { + missingParameter ( en, "coverages" ); + } else if ( stFormat == 1 ) { + subtableEntries.add ( extractAttachmentAnchors() ); + } else { + unsupportedFormat ( en, stFormat ); + } + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_CURSIVE, ct ); + } else if ( en[1].equals ( "EntryExitRecord" ) ) { + int na = anchors.size(); + if ( na == 0 ) { + missingParameter ( en, "entry or exit anchor" ); + } else if ( na == 1 ) { + anchors.add ( null ); + } else if ( na > 2 ) { + duplicateParameter ( en, "entry or exit anchor" ); + } + attachmentAnchors.add ( extractAnchors() ); + } else if ( en[1].equals ( "BaseRecord" ) ) { + baseOrMarkAnchors.add ( extractAnchors() ); + } else if ( en[1].equals ( "FeatureRecord" ) ) { + if ( flIndex != flSequence ) { + mismatchedIndex ( en, "feature", flIndex, flSequence ); + } else if ( featureTag == null ) { + missingTag ( en, "feature" ); + } else { + String fid = makeFeatureId ( flIndex ); + features.put ( fid, extractFeature() ); + nextFeature(); + } + } else if ( en[1].equals ( "GDEF" ) ) { + if ( subtables.size() > 0 ) { + gdef = new GlyphDefinitionTable ( subtables ); + } + clearTable(); + } else if ( en[1].equals ( "GPOS" ) ) { + if ( subtables.size() > 0 ) { + gpos = new GlyphPositioningTable ( gdef, extractLookups(), subtables ); + } + clearTable(); + } else if ( en[1].equals ( "GSUB" ) ) { + if ( subtables.size() > 0 ) { + gsub = new GlyphSubstitutionTable ( gdef, extractLookups(), subtables ); + } + clearTable(); + } else if ( en[1].equals ( "GlyphClassDef" ) ) { + GlyphMappingTable mapping = extractClassDefMapping ( glyphClasses, stFormat, true ); + addGDEFSubtable ( GlyphDefinitionTable.GDEF_LOOKUP_TYPE_GLYPH_CLASS, mapping ); + } else if ( en[1].equals ( "InputCoverage" ) ) { + String ck = makeCoverageKey ( "in", ctIndex ); + if ( coverages.containsKey ( ck ) ) { + duplicateCoverageIndex ( en, ctIndex ); + } else { + coverages.put ( ck, extractCoverage() ); + } + } else if ( en[1].equals ( "LigatureAttach" ) ) { + ligatureAnchors.add ( extractComponents() ); + } else if ( en[1].equals ( "LigatureCoverage" ) ) { + coverages.put ( "liga", extractCoverage() ); + } else if ( en[1].equals ( "LigatureSet" ) ) { + subtableEntries.add ( extractLigatures() ); + } else if ( en[1].equals ( "LigatureSubst" ) ) { + if ( ! sortEntries ( coverageEntries, subtableEntries ) ) { + mismatchedEntries ( en, coverageEntries.size(), subtableEntries.size() ); + } + GlyphCoverageTable coverage = extractCoverage(); + addGSUBSubtable ( GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_LIGATURE, coverage ); + } else if ( en[1].equals ( "LookAheadCoverage" ) ) { + String ck = makeCoverageKey ( "la", ctIndex ); + if ( coverages.containsKey ( ck ) ) { + duplicateCoverageIndex ( en, ctIndex ); + } else { + coverages.put ( ck, extractCoverage() ); + } + } else if ( en[1].equals ( "Lookup" ) ) { + if ( ltIndex != ltSequence ) { + mismatchedIndex ( en, "lookup", ltIndex, ltSequence ); + } else { + nextLookup(); + } + } else if ( en[1].equals ( "MarkAttachClassDef" ) ) { + GlyphMappingTable mapping = extractClassDefMapping ( glyphClasses, stFormat, true ); + addGDEFSubtable ( GlyphDefinitionTable.GDEF_LOOKUP_TYPE_MARK_ATTACHMENT, mapping ); + } else if ( en[1].equals ( "MarkCoverage" ) ) { + coverages.put ( "mark", extractCoverage() ); + } else if ( en[1].equals ( "Mark1Coverage" ) ) { + coverages.put ( "mrk1", extractCoverage() ); + } else if ( en[1].equals ( "Mark2Coverage" ) ) { + coverages.put ( "mrk2", extractCoverage() ); + } else if ( en[1].equals ( "MarkBasePos" ) ) { + GlyphCoverageTable mct = coverages.get ( "mark" ); + GlyphCoverageTable bct = coverages.get ( "base" ); + if ( mct == null ) { + missingParameter ( en, "mark coverages" ); + } else if ( bct == null ) { + missingParameter ( en, "base coverages" ); + } else if ( stFormat == 1 ) { + MarkAnchor[] maa = extractMarkAnchors(); + Anchor[][] bam = extractBaseOrMarkAnchors(); + subtableEntries.add ( bct ); + subtableEntries.add ( computeClassCount ( bam ) ); + subtableEntries.add ( maa ); + subtableEntries.add ( bam ); + } else { + unsupportedFormat ( en, stFormat ); + } + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_MARK_TO_BASE, mct ); + } else if ( en[1].equals ( "MarkLigPos" ) ) { + GlyphCoverageTable mct = coverages.get ( "mark" ); + GlyphCoverageTable lct = coverages.get ( "liga" ); + if ( mct == null ) { + missingParameter ( en, "mark coverages" ); + } else if ( lct == null ) { + missingParameter ( en, "ligature coverages" ); + } else if ( stFormat == 1 ) { + MarkAnchor[] maa = extractMarkAnchors(); + Anchor[][][] lam = extractLigatureAnchors(); + subtableEntries.add ( lct ); + subtableEntries.add ( computeLigaturesClassCount ( lam ) ); + subtableEntries.add ( computeLigaturesComponentCount ( lam ) ); + subtableEntries.add ( maa ); + subtableEntries.add ( lam ); + } else { + unsupportedFormat ( en, stFormat ); + } + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_MARK_TO_LIGATURE, mct ); + } else if ( en[1].equals ( "MarkMarkPos" ) ) { + GlyphCoverageTable mct1 = coverages.get ( "mrk1" ); + GlyphCoverageTable mct2 = coverages.get ( "mrk2" ); + if ( mct1 == null ) { + missingParameter ( en, "mark coverages 1" ); + } else if ( mct2 == null ) { + missingParameter ( en, "mark coverages 2" ); + } else if ( stFormat == 1 ) { + MarkAnchor[] maa = extractMarkAnchors(); + Anchor[][] mam = extractBaseOrMarkAnchors(); + subtableEntries.add ( mct2 ); + subtableEntries.add ( computeClassCount ( mam ) ); + subtableEntries.add ( maa ); + subtableEntries.add ( mam ); + } else { + unsupportedFormat ( en, stFormat ); + } + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_MARK_TO_MARK, mct1 ); + } else if ( en[1].equals ( "MarkRecord" ) ) { + if ( markClass == -1 ) { + missingParameter ( en, "mark class" ); + } else if ( anchors.size() == 0 ) { + missingParameter ( en, "mark anchor" ); + } else if ( anchors.size() > 1 ) { + duplicateParameter ( en, "mark anchor" ); + } else { + markAnchors.add ( new GlyphPositioningTable.MarkAnchor ( markClass, anchors.get(0) ) ); + markClass = -1; + anchors.clear(); + } + } else if ( en[1].equals ( "Mark2Record" ) ) { + baseOrMarkAnchors.add ( extractAnchors() ); + } else if ( en[1].equals ( "MultipleSubst" ) ) { + GlyphCoverageTable coverage = coverages.get ( "main" ); + addGSUBSubtable ( GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_MULTIPLE, coverage, extractSequenceEntries() ); + } else if ( en[1].equals ( "PairPos" ) ) { + assertSubtableEntriesClear(); + if ( stFormat == 1 ) { + if ( pairSets.size() == 0 ) { + missingParameter ( en, "pair set" ); + } else { + subtableEntries.add ( extractPairSets() ); + } + } else if ( stFormat == 2 ) { + unsupportedFormat ( en, stFormat ); + } + GlyphCoverageTable coverage = coverages.get ( "main" ); + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_PAIR, coverage ); + vf1 = vf2 = -1; psIndex = -1; + } else if ( en[1].equals ( "PairSet" ) ) { + if ( psIndex != pairSets.size() ) { + invalidIndex ( en, psIndex, pairSets.size() ); + } else { + pairSets.add ( extractPairs() ); + } + } else if ( en[1].equals ( "PairValueRecord" ) ) { + if ( g2 == -1 ) { + missingParameter ( en, "second glyph" ); + } else if ( ( v1 == null ) && ( v2 == null ) ) { + missingParameter ( en, "first or second value" ); + } else { + pairs.add ( new PairValues ( g2, v1, v2 ) ); + clearPair(); + } + } else if ( en[1].equals ( "PosLookupRecord" ) || en[1].equals ( "SubstLookupRecord" ) ) { + if ( rlSequence < 0 ) { + missingParameter ( en, "sequence index" ); + } else if ( rlLookup < 0 ) { + missingParameter ( en, "lookup index" ); + } else { + ruleLookups.add ( new GlyphTable.RuleLookup ( rlSequence, rlLookup ) ); + rlSequence = rlLookup = -1; + } + } else if ( en[1].equals ( "Script" ) ) { + if ( scriptTag == null ) { + missingTag ( en, "script" ); + } else if ( scripts.containsKey ( scriptTag ) ) { + duplicateTag ( en, "script", scriptTag ); + } else { + scripts.put ( scriptTag, extractLanguages() ); + scriptTag = null; + } + } else if ( en[1].equals ( "Sequence" ) ) { + subtableEntries.add ( extractSubstitutes() ); + } else if ( en[1].equals ( "SinglePos" ) ) { + int nv = subtableEntries.size(); + if ( stFormat == 1 ) { + if ( nv < 0 ) { + missingParameter ( en, "value" ); + } else if ( nv > 1 ) { + duplicateParameter ( en, "value" ); + } + } else if ( stFormat == 2 ) { + GlyphPositioningTable.Value[] pva = (GlyphPositioningTable.Value[]) subtableEntries.toArray ( new GlyphPositioningTable.Value [ nv ] ); + subtableEntries.clear(); + subtableEntries.add ( pva ); + } + GlyphCoverageTable coverage = coverages.get ( "main" ); + addGPOSSubtable ( GlyphPositioningTable.GPOS_LOOKUP_TYPE_SINGLE, coverage ); + vf1 = -1; + } else if ( en[1].equals ( "SingleSubst" ) ) { + if ( ! sortEntries ( coverageEntries, subtableEntries ) ) { + mismatchedEntries ( en, coverageEntries.size(), subtableEntries.size() ); + } + GlyphCoverageTable coverage = extractCoverage(); + addGSUBSubtable ( GlyphSubstitutionTable.GSUB_LOOKUP_TYPE_SINGLE, coverage ); + } else if ( en[1].equals ( "cmap" ) ) { + cmap = getCMAP(); + gmap = getGMAP(); + cmapEntries.clear(); + } else if ( en[1].equals ( "cmap_format_4" ) ) { + cmPlatform = cmEncoding = cmLanguage = -1; + } else if ( en[1].equals ( "hmtx" ) ) { + hmtx = getHMTX(); + hmtxEntries.clear(); + } else if ( en[1].equals ( "ttFont" ) ) { + if ( cmap == null ) { + missingParameter ( en, "cmap" ); + } + if ( hmtx == null ) { + missingParameter ( en, "hmtx" ); + } + } + elements.pop(); } @Override public void characters ( char[] chars, int start, int length ) { } - } + private String[] getParent() { + if ( ! elements.empty() ) { + return elements.peek(); + } else { + return new String[] { null, null }; + } + } + private boolean isParent ( Object enx ) { + if ( enx instanceof String[][] ) { + for ( String[] en : (String[][]) enx ) { + if ( isParent ( en ) ) { + return true; + } + } + return false; + } else if ( enx instanceof String[] ) { + String[] en = (String[]) enx; + if ( ! elements.empty() ) { + String[] pn = elements.peek(); + return ( pn != null ) && sameExpandedName ( en, pn ); + } else if ( ( en[0] == null ) && ( en[1] == null ) ) { + return true; + } else { + return false; + } + } else { + return false; + } + } + private boolean isAnchorElement ( String ln ) { + if ( ln.equals ( "BaseAnchor" ) ) { + return true; + } else if ( ln.equals ( "EntryAnchor" ) ) { + return true; + } else if ( ln.equals ( "ExitAnchor" ) ) { + return true; + } else if ( ln.equals ( "LigatureAnchor" ) ) { + return true; + } else if ( ln.equals ( "MarkAnchor" ) ) { + return true; + } else if ( ln.equals ( "Mark2Anchor" ) ) { + return true; + } else { + return false; + } + } + private Map<Integer,Integer> getCMAP() { + Map<Integer,Integer> cmap = new TreeMap(); + for ( int[] cme : cmapEntries ) { + Integer c = Integer.valueOf ( cme[0] ); + Integer g = Integer.valueOf ( cme[1] ); + cmap.put ( c, g ); + } + return cmap; + } + private Map<Integer,Integer> getGMAP() { + Map<Integer,Integer> gmap = new TreeMap(); + for ( int[] cme : cmapEntries ) { + Integer c = Integer.valueOf ( cme[0] ); + Integer g = Integer.valueOf ( cme[1] ); + gmap.put ( g, c ); + } + return gmap; + } + private int[][] getHMTX() { + int ne = hmtxEntries.size(); + int[][] hmtx = new int [ ne ] [ 2 ]; + for ( int i = 0; i < ne; i++ ) { + int[] ea = hmtxEntries.get(i); + if ( ea != null ) { + hmtx [ i ] [ 0 ] = ea[0]; + hmtx [ i ] [ 1 ] = ea[1]; + } + } + return hmtx; + } + private GlyphClassTable extractClassDefMapping ( Map<String,Integer> glyphClasses, int format, boolean clearSourceMap ) { + GlyphClassTable ct; + if ( format == 1 ) { + ct = extractClassDefMapping1 ( extractClassMappings ( glyphClasses, clearSourceMap ) ); + } else if ( format == 2 ) { + ct = extractClassDefMapping2 ( extractClassMappings ( glyphClasses, clearSourceMap ) ); + } else { + ct = null; + } + return ct; + } + private GlyphClassTable extractClassDefMapping1 ( int[][] cma ) { + List entries = new ArrayList<Integer>(); + int s = -1; + int l = -1; + Integer zero = Integer.valueOf(0); + for ( int[] m : cma ) { + int g = m[0]; + int c = m[1]; + if ( s < 0 ) { + s = g; + l = g - 1; + entries.add ( Integer.valueOf ( s ) ); + } + while ( g > ( l + 1 ) ) { + entries.add ( zero ); + l++; + } + assert l == ( g - 1 ); + entries.add ( Integer.valueOf ( c ) ); + l = g; + } + return GlyphClassTable.createClassTable ( entries ); + } + private GlyphClassTable extractClassDefMapping2 ( int[][] cma ) { + List entries = new ArrayList<Integer>(); + int s = -1; + int e = s; + int l = -1; + for ( int[] m : cma ) { + int g = m[0]; + int c = m[1]; + if ( c != l ) { + if ( s >= 0 ) { + entries.add ( new GlyphClassTable.MappingRange ( s, e, l ) ); + } + s = e = g; + } else { + e = g; + } + l = c; + } + return GlyphClassTable.createClassTable ( entries ); + } + private int[][] extractClassMappings ( Map<String,Integer> glyphClasses, boolean clearSourceMap ) { + int nc = glyphClasses.size(); + int i = 0; + int[][] cma = new int [ nc ] [ 2 ]; + for ( Map.Entry<String,Integer> e : glyphClasses.entrySet() ) { + Integer gid = glyphIds.get ( e.getKey() ); + assert gid != null; + int[] m = cma [ i ]; + m [ 0 ] = (int) gid; + m [ 1 ] = (int) e.getValue(); + i++; + } + if ( clearSourceMap ) { + glyphClasses.clear(); + } + return sortClassMappings ( cma ); + } + private int[][] sortClassMappings ( int[][] cma ) { + Arrays.sort ( cma, new Comparator<int[]>() { + public int compare ( int[] m1, int[] m2 ) { + assert m1.length > 0; + assert m2.length > 0; + if ( m1[0] < m2[0] ) { + return -1; + } else if ( m1[0] > m2[0] ) { + return 1; + } else { + return 0; + } + } + } + ); + return cma; + } + // sort coverage entries and subtable entries together + private boolean sortEntries ( List cel, List sel ) { + assert cel != null; + assert sel != null; + if ( cel.size() == sel.size() ) { + int np = cel.size(); + Object[][] pa = new Object [ np ] [ 2 ]; + for ( int i = 0; i < np; i++ ) { + pa [ i ] [ 0 ] = cel.get ( i ); + pa [ i ] [ 1 ] = sel.get ( i ); + } + Arrays.sort ( pa, new Comparator<Object[]>() { + public int compare ( Object[] p1, Object[] p2 ) { + assert p1.length == 2; + assert p2.length == 2; + int c1 = (Integer) p1[0]; + int c2 = (Integer) p2[0]; + if ( c1 < c2 ) { + return -1; + } else if ( c1 > c2 ) { + return 1; + } else { + return 0; + } + } + } + ); + cel.clear(); + sel.clear(); + for ( int i = 0; i < np; i++ ) { + cel.add ( pa [ i ] [ 0 ] ); + sel.add ( pa [ i ] [ 1 ] ); + } + assert cel.size() == sel.size(); + return true; + } else { + return false; + } + } + private String makeCoverageKey ( String prefix, int index ) { + assert prefix != null; + assert prefix.length() == 2; + assert index < 100; + return prefix + CharUtilities.padLeft ( Integer.toString ( index, 10 ), 2, '0' ); + } + private List extractCoverageEntries() { + List entries = new ArrayList<Integer> ( coverageEntries ); + clearCoverage(); + return entries; + } + private void clearCoverageEntries() { + coverageEntries.clear(); + ctFormat = -1; + ctIndex = -1; + } + private void assertCoverageEntriesClear() { + assert coverageEntries.size() == 0; + } + private GlyphCoverageTable extractCoverage() { + assert ( ctFormat == 1 ) || ( ctFormat == 2 ); + assert ctIndex >= 0; + GlyphCoverageTable coverage = GlyphCoverageTable.createCoverageTable ( extractCoverageEntries() ); + clearCoverage(); + return coverage; + } + private void clearCoverages() { + coverages.clear(); + } + private void assertCoverageClear() { + assert ctFormat == -1; + assert ctIndex == -1; + assertCoverageEntriesClear(); + } + private void clearCoverage() { + ctFormat = -1; + ctIndex = -1; + clearCoverageEntries(); + } + private void assertCoveragesClear() { + assert coverages.size() == 0; + } + private GlyphCoverageTable[] getCoveragesWithPrefix ( String prefix ) { + assert prefix != null; + int prefixLength = prefix.length(); + Set<String> keys = coverages.keySet(); + int mi = -1; // maximum coverage table index + for ( String k : keys ) { + if ( k.startsWith ( prefix ) ) { + int i = Integer.parseInt ( k.substring ( prefixLength ) ); + if ( i > mi ) { + mi = i; + } + } + } + GlyphCoverageTable[] gca = new GlyphCoverageTable [ mi + 1 ]; + for ( String k : keys ) { + if ( k.startsWith ( prefix ) ) { + int i = Integer.parseInt ( k.substring ( prefixLength ) ); + if ( i >= 0 ) { + gca [ i ] = coverages.get ( k ); + } + } + } + return gca; + } + private boolean hasMissingCoverage ( GlyphCoverageTable[] gca ) { + assert gca != null; + int nc = 0; + for ( int i = 0, n = gca.length; i < n; i++ ) { + if ( gca [ i ] != null ) { + nc++; + } + } + return nc != gca.length; + } + private String makeFeatureId ( int fid ) { + assert fid >= 0; + return "f" + fid; + } + private String makeLookupId ( int lid ) { + assert lid >= 0; + return "lu" + lid; + } + private void clearScripts() { + scripts.clear(); + } + private List<String> extractLanguageFeatures() { + List<String> lfl = new ArrayList<String>(languageFeatures); + clearLanguageFeatures(); + return lfl; + } + private void assertLanguageFeaturesClear() { + assert languageFeatures.size() == 0; + } + private void clearLanguageFeatures() { + languageFeatures.clear(); + } + private Map<String,List<String>> extractLanguages() { + Map<String,List<String>> lm = new HashMap ( languages ); + clearLanguages(); + return lm; + } + private void clearLanguages() { + languages.clear(); + } + private void assertFeatureLookupsClear() { + assert featureLookups.size() == 0; + } + private List extractFeatureLookups() { + List lookups = new ArrayList<String> ( featureLookups ); + clearFeatureLookups(); + return lookups; + } + private void clearFeatureLookups() { + featureLookups.clear(); + } + private void assertFeatureClear() { + assert flIndex == -1; + assert featureTag == null; + assertFeatureLookupsClear(); + } + private Object[] extractFeature() { + Object[] fa = new Object [ 2 ]; + fa[0] = featureTag; + fa[1] = extractFeatureLookups(); + clearFeature(); + return fa; + } + private void clearFeature() { + flIndex = -1; + featureTag = null; + clearFeatureLookups(); + } + private void nextFeature() { + flSequence++; + } + private void clearFeatures() { + features.clear(); + } + private void clearSubtableInLookup() { + stFormat = 0; + clearCoverages(); + } + private void clearSubtablesInLookup() { + clearSubtableInLookup(); + stSequence = 0; + } + private void clearSubtablesInTable() { + clearSubtablesInLookup(); + subtables.clear(); + } + private void nextSubtableInLookup() { + stSequence++; + clearSubtableInLookup(); + } + private void assertLookupClear() { + assert ltIndex == -1; + assert ltFlags == 0; + } + private void clearLookup() { + ltIndex = -1; + ltFlags = 0; + clearSubtablesInLookup(); + } + private Map<GlyphTable.LookupSpec,List<String>> extractLookups() { + Map<GlyphTable.LookupSpec,List<String>> lookups = new LinkedHashMap<GlyphTable.LookupSpec,List<String>>(); + for ( String st : scripts.keySet() ) { + Map<String,List<String>> lm = scripts.get ( st ); + if ( lm != null ) { + for ( String lt : lm.keySet() ) { + List<String> fids = lm.get ( lt ); + if ( fids != null ) { + for ( String fid : fids ) { + if ( fid != null ) { + Object[] fa = features.get ( fid ); + if ( fa != null ) { + assert fa.length == 2; + String ft = (String) fa[0]; + List<String> lids = (List<String>) fa[1]; + if ( ( lids != null ) && ( lids.size() > 0 ) ) { + GlyphTable.LookupSpec ls = new GlyphTable.LookupSpec ( st, lt, ft ); + lookups.put ( ls, lids ); + } + } + } + } + } + } + } + } + clearScripts(); + clearLanguages(); + clearFeatures(); + return lookups; + } + private void clearLookups() { + clearLookup(); + clearSubtablesInTable(); + ltSequence = 0; + flSequence = 0; + } + private void nextLookup() { + ltSequence++; + clearLookup(); + } + private void clearTable() { + clearLookups(); + } + private void assertSubtableClear() { + assert stFormat == 0; + assertCoverageEntriesClear(); + } + private void assertSubtablesClear() { + assertSubtableClear(); + assert subtables.size() == 0; + } + private void clearSubtableEntries() { + subtableEntries.clear(); + } + private void assertSubtableEntriesClear() { + assert subtableEntries.size() == 0; + } + private List extractSubtableEntries() { + List entries = new ArrayList ( subtableEntries ); + clearSubtableEntries(); + return entries; + } + private int[] extractAlternates() { + int[] aa = new int [ alternates.size() ]; + int i = 0; + for ( Integer a : alternates ) { + aa[i++] = (int) a; + } + clearAlternates(); + return aa; + } + private void clearAlternates() { + alternates.clear(); + } + private LigatureSet extractLigatures() { + LigatureSet ls = new LigatureSet ( ligatures ); + clearLigatures(); + return ls; + } + private void clearLigatures() { + ligatures.clear(); + } + private int[] extractSubstitutes() { + int[] aa = new int [ substitutes.size() ]; + int i = 0; + for ( Integer a : substitutes ) { + aa[i++] = (int) a; + } + clearSubstitutes(); + return aa; + } + private void clearSubstitutes() { + substitutes.clear(); + } + private List extractSequenceEntries() { + List sequences = extractSubtableEntries(); + int[][] sa = new int [ sequences.size() ] []; + int i = 0; + for ( Object s : sequences ) { + if ( s instanceof int[] ) { + sa[i++] = (int[]) s; + } + } + List entries = new ArrayList(); + entries.add ( sa ); + return entries; + } + private RuleLookup[] extractRuleLookups() { + RuleLookup[] lookups = (RuleLookup[]) ruleLookups.toArray ( new RuleLookup [ ruleLookups.size() ] ); + clearRuleLookups(); + return lookups; + } + private void clearRuleLookups() { + ruleLookups.clear(); + } + private GlyphPositioningTable.Value parseValue ( String[] en, Attributes attrs, int format ) throws SAXException { + String xPlacement = attrs.getValue ( "XPlacement" ); + int xp = 0; + if ( xPlacement != null ) { + xp = Integer.parseInt ( xPlacement ); + } else if ( ( format & GlyphPositioningTable.Value.X_PLACEMENT ) != 0 ) { + missingParameter ( en, "xPlacement" ); + } + String yPlacement = attrs.getValue ( "YPlacement" ); + int yp = 0; + if ( yPlacement != null ) { + yp = Integer.parseInt ( yPlacement ); + } else if ( ( format & GlyphPositioningTable.Value.Y_PLACEMENT ) != 0 ) { + missingParameter ( en, "yPlacement" ); + } + String xAdvance = attrs.getValue ( "XAdvance" ); + int xa = 0; + if ( xAdvance != null ) { + xa = Integer.parseInt ( xAdvance ); + } else if ( ( format & GlyphPositioningTable.Value.X_ADVANCE ) != 0 ) { + missingParameter ( en, "xAdvance" ); + } + String yAdvance = attrs.getValue ( "YAdvance" ); + int ya = 0;; + if ( yAdvance != null ) { + ya = Integer.parseInt ( yAdvance ); + } else if ( ( format & GlyphPositioningTable.Value.Y_ADVANCE ) != 0 ) { + missingParameter ( en, "yAdvance" ); + } + return new GlyphPositioningTable.Value ( xp, yp, xa, ya, null, null, null, null ); + } + private void assertPairClear() { + assert g2 == -1; + assert v1 == null; + assert v2 == null; + } + private void clearPair() { + g2 = -1; + v1 = null; + v2 = null; + } + private void assertPairsClear() { + assert pairs.size() == 0; + } + private void clearPairs() { + pairs.clear(); + psIndex = -1; + } + private PairValues[] extractPairs() { + PairValues[] pva = (PairValues[]) pairs.toArray ( new PairValues [ pairs.size() ] ); + clearPairs(); + return pva; + } + private void assertPairSetsClear() { + assert pairSets.size() == 0; + } + private void clearPairSets() { + pairSets.clear(); + } + private PairValues[][] extractPairSets() { + PairValues[][] pvm = (PairValues[][]) pairSets.toArray ( new PairValues [ pairSets.size() ][] ); + clearPairSets(); + return pvm; + } + private Anchor[] extractAnchors() { + Anchor[] aa = (Anchor[]) anchors.toArray ( new Anchor [ anchors.size() ] ); + anchors.clear(); + return aa; + } + private MarkAnchor[] extractMarkAnchors() { + MarkAnchor[] maa = new MarkAnchor [ markAnchors.size() ]; + maa = (MarkAnchor[]) markAnchors.toArray ( new MarkAnchor [ maa.length ] ); + markAnchors.clear(); + return maa; + } + private Anchor[][] extractBaseOrMarkAnchors() { + int na = baseOrMarkAnchors.size(); + int ncMax = 0; + for ( Anchor[] aa : baseOrMarkAnchors ) { + if ( aa != null ) { + int nc = aa.length; + if ( nc > ncMax ) { + ncMax = nc; + } + } + } + Anchor[][] am = new Anchor [ na ][ ncMax ]; + for ( int i = 0; i < na; i++ ) { + Anchor[] aa = baseOrMarkAnchors.get(i); + if ( aa != null ) { + for ( int j = 0; j < ncMax; j++ ) { + if ( j < aa.length ) { + am [ i ] [ j ] = aa [ j ]; + } + } + } + } + baseOrMarkAnchors.clear(); + return am; + } + private Integer computeClassCount ( Anchor[][] am ) { + int ncMax = 0; + for ( int i = 0, n = am.length; i < n; i++ ) { + Anchor[] aa = am [ i ]; + if ( aa != null ) { + int nc = aa.length; + if ( nc > ncMax ) { + ncMax = nc; + } + } + } + return Integer.valueOf ( ncMax ); + } + private Anchor[][] extractComponents() { + Anchor[][] cam = new Anchor [ components.size() ][]; + cam = (Anchor[][]) components.toArray ( new Anchor [ cam.length ][] ); + components.clear(); + return cam; + } + private Anchor[][][] extractLigatureAnchors() { + int na = ligatureAnchors.size(); + int ncMax = 0; + int nxMax = 0; + for ( Anchor[][] cm : ligatureAnchors ) { + if ( cm != null ) { + int nx = cm.length; + if ( nx > nxMax ) { + nxMax = nx; + } + for ( Anchor[] aa : cm ) { + if ( aa != null ) { + int nc = aa.length; + if ( nc > ncMax ) { + ncMax = nc; + } + } + } + } + } + Anchor[][][] lam = new Anchor [ na ] [ nxMax ] [ ncMax ]; + for ( int i = 0; i < na; i++ ) { + Anchor[][] cm = ligatureAnchors.get(i); + if ( cm != null ) { + for ( int j = 0; j < nxMax; j++ ) { + if ( j < cm.length ) { + Anchor[] aa = cm [ j ]; + if ( aa != null ) { + for ( int k = 0; k < ncMax; k++ ) { + if ( k < aa.length ) { + lam [ i ] [ j ] [ k ] = aa [ k ]; + } + } + } + } + } + } + } + ligatureAnchors.clear(); + return lam; + } + private Integer computeLigaturesClassCount ( Anchor[][][] lam ) { + int ncMax = 0; + if ( lam != null ) { + for ( Anchor[][] cm : lam ) { + if ( cm != null ) { + for ( Anchor[] aa : cm ) { + if ( aa != null ) { + int nc = aa.length;; + if ( nc > ncMax ) { + ncMax = nc; + } + } + } + } + } + } + return Integer.valueOf ( ncMax ); + } + private Integer computeLigaturesComponentCount ( Anchor[][][] lam ) { + int nxMax = 0; + if ( lam != null ) { + for ( Anchor[][] cm : lam ) { + if ( cm != null ) { + int nx = cm.length;; + if ( nx > nxMax ) { + nxMax = nx; + } + } + } + } + return Integer.valueOf ( nxMax ); + } + private Anchor[] extractAttachmentAnchors() { + int na = attachmentAnchors.size(); + Anchor[] aa = new Anchor [ na * 2 ]; + for ( int i = 0; i < na; i++ ) { + Anchor[] ea = attachmentAnchors.get(i); + int ne = ea.length; + if ( ne > 0 ) { + aa [ ( i * 2 ) + 0 ] = ea[0]; + } + if ( ne > 1 ) { + aa [ ( i * 2 ) + 1 ] = ea[1]; + } + } + attachmentAnchors.clear(); + return aa; + } + private void addGDEFSubtable ( int stType, GlyphMappingTable mapping ) { + subtables.add ( GlyphDefinitionTable.createSubtable ( stType, makeLookupId ( ltSequence ), stSequence, ltFlags, stFormat, mapping, extractSubtableEntries() ) ); + nextSubtableInLookup(); + } + private void addGSUBSubtable ( int stType, GlyphCoverageTable coverage, List entries ) { + subtables.add ( GlyphSubstitutionTable.createSubtable ( stType, makeLookupId ( ltSequence ), stSequence, ltFlags, stFormat, coverage, entries ) ); + nextSubtableInLookup(); + } + private void addGSUBSubtable ( int stType, GlyphCoverageTable coverage ) { + addGSUBSubtable ( stType, coverage, extractSubtableEntries() ); + } + private void addGPOSSubtable ( int stType, GlyphCoverageTable coverage, List entries ) { + subtables.add ( GlyphPositioningTable.createSubtable ( stType, makeLookupId ( ltSequence ), stSequence, ltFlags, stFormat, coverage, entries ) ); + nextSubtableInLookup(); + } + private void addGPOSSubtable ( int stType, GlyphCoverageTable coverage ) { + addGPOSSubtable ( stType, coverage, extractSubtableEntries() ); + } + } + private int mapGlyphId0 ( String glyph ) { + assert glyphIds != null; + Integer gid = glyphIds.get ( glyph ); + if ( gid != null ) { + return (int) gid; + } else { + return -1; + } + } + private int mapGlyphId ( String glyph, String[] currentElement ) throws SAXException { + int g = mapGlyphId0 ( glyph ); + if ( g < 0 ) { + unsupportedGlyph ( currentElement, glyph ); + return -1; + } else { + return g; + } + } + private int[] mapGlyphIds ( String glyphs, String[] currentElement ) throws SAXException { + String[] ga = glyphs.split(","); + int[] gids = new int [ ga.length ]; + int i = 0; + for ( String glyph : ga ) { + gids[i++] = mapGlyphId ( glyph, currentElement ); + } + return gids; + } + private int mapGlyphIdToChar ( String glyph ) { + assert glyphIds != null; + Integer gid = glyphIds.get ( glyph ); + if ( gid != null ) { + if ( gmap != null ) { + Integer cid = gmap.get ( gid ); + if ( cid != null ) { + return cid.intValue(); + } + } + } + return -1; + } + private String formatLocator() { + if ( locator == null ) { + return "{null}"; + } else { + return "{" + locator.getSystemId() + ":" + locator.getLineNumber() + ":" + locator.getColumnNumber() + "}"; + } + } + private void unsupportedElement ( String[] en ) throws SAXException { + throw new SAXException ( formatLocator() + ": unsupported element " + formatExpandedName ( en ) ); + } + private void notPermittedInElementContext ( String[] en, String[] cn, Object xns ) throws SAXException { + assert en != null; + assert cn != null; + String s = "element " + formatExpandedName(en) + " not permitted in current element context " + formatExpandedName(cn); + if ( xns == null ) { + s += ", expected root context"; + } else if ( xns instanceof String[][] ) { + int nxn = 0; + s += ", expected one of { "; + for ( String[] xn : (String[][]) xns ) { + if ( nxn++ > 0 ) { + s += ", "; + } + s += formatExpandedName ( xn ); + } + s += " }"; + } else if ( xns instanceof String[] ) { + s += ", expected " + formatExpandedName ( (String[]) xns ); + } + throw new SAXException ( formatLocator() + ": " + s ); + } + private void missingRequiredAttribute ( String[] en, String name ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " missing required attribute " + name ); + } + private void duplicateGlyph ( String[] en, String name, int gid ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " contains duplicate name \"" + name + "\", with identifier value " + gid ); + } + private void unsupportedGlyph ( String[] en, String name ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " refers to unsupported glyph id \"" + name + "\"" ); + } + private void duplicateCMAPCharacter ( String[] en, int cid ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " contains duplicate cmap character code: " + CharUtilities.format ( cid ) ); + } + private void duplicateCMAPGlyph ( String[] en, int gid ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " contains duplicate cmap glyph code: " + gid ); + } + private void duplicateGlyphClass ( String[] en, String name, String glyphClass ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " contains duplicate glyph class for \"" + name + "\", with class value " + glyphClass ); + } + private void unsupportedFormat ( String[] en, int format ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " refers to unsupported table format \"" + format + "\"" ); + } + private void invalidIndex ( String[] en, int actual, int expected ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " specifies invalid index " + actual + ", expected " + expected ); + } + private void mismatchedIndex ( String[] en, String label, int actual, int expected ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " mismatched " + label + " index: got " + actual + ", expected " + expected ); + } + private void mismatchedEntries ( String[] en, int nce, int nse ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " mismatched coverage and subtable entry counts, # coverages " + nce + ", # entries " + nse ); + } + private void missingParameter ( String[] en, String label ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " missing " + label + " parameter" ); + } + private void duplicateParameter ( String[] en, String label ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " duplicate " + label + " parameter" ); + } + private void duplicateCoverageIndex ( String[] en, int index ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " duplicate coverage table index " + index ); + } + private void missingCoverage ( String[] en, String type, int expected ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " missing " + type + " coverage table, expected " + ( ( expected > 0 ) ? expected : 1 ) + " table(s)" ); + } + private void missingTag ( String[] en, String label ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " missing " + label + " tag" ); + } + private void duplicateTag ( String[] en, String label, String tag ) throws SAXException { + throw new SAXException ( formatLocator() + ": element " + formatExpandedName(en) + " duplicate " + label + " tag: " + tag ); + } + private static String[] makeExpandedName ( String uri, String localName, String qName ) { + if ( ( uri != null ) && ( uri.length() == 0 ) ) { + uri = null; + } + if ( ( localName != null ) && ( localName.length() == 0 ) ) { + localName = null; + } + if ( ( uri == null ) && ( localName == null ) ) { + uri = extractPrefix ( qName ); + localName = extractLocalName ( qName ); + } + return new String[] { uri, localName }; + } + private static String extractPrefix ( String qName ) { + String[] sa = qName.split(":"); + if ( sa.length == 2 ) { + return sa[0]; + } else { + return null; + } + } + private static String extractLocalName ( String qName ) { + String[] sa = qName.split(":"); + if ( sa.length == 2 ) { + return sa[1]; + } else if ( sa.length == 1 ) { + return sa[0]; + } else { + return null; + } + } + private static boolean sameExpandedName ( String[] n1, String[] n2 ) { + String u1 = n1[0]; + String u2 = n2[0]; + if ( ( u1 == null ) ^ ( u2 == null ) ) { + return false; + } + if ( ( u1 != null ) && ( u2 != null ) ) { + if ( ! u1.equals ( u2 ) ) { + return false; + } + } + String l1 = n1[1]; + String l2 = n2[1]; + if ( ( l1 == null ) ^ ( l2 == null ) ) { + return false; + } + if ( ( l1 != null ) && ( l2 != null ) ) { + if ( ! l1.equals ( l2 ) ) { + return false; + } + } + return true; + } + private static String formatExpandedName ( String[] n ) { + String u = ( n[0] != null ) ? n[0] : "null"; + String l = ( n[1] != null ) ? n[1] : "null"; + return "{" + u + "}" + l; + } }
diff --git a/test/java/org/apache/fop/complexscripts/util/TTXFileTestCase.java b/test/java/org/apache/fop/complexscripts/util/TTXFileTestCase.java index db0bb7d..8c125fa 100644 --- a/test/java/org/apache/fop/complexscripts/util/TTXFileTestCase.java +++ b/test/java/org/apache/fop/complexscripts/util/TTXFileTestCase.java
@@ -21,9 +21,12 @@ import java.io.File; -import junit.framework.TestCase; +import org.junit.Test; -public class TTXFileTestCase extends TestCase { +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class TTXFileTestCase { private static String ttxFilesRoot = "test/resources/complexscripts"; @@ -34,11 +37,12 @@ "arab/ttx/arab-004.ttx", }; + @Test public void testTTXFiles() throws Exception { for ( String tfn : ttxFiles ) { try { - TTXFile tf = new TTXFile(); - tf.parse ( ttxFilesRoot + File.separator + tfn ); + TTXFile tf = TTXFile.getFromCache ( ttxFilesRoot + File.separator + tfn ); + assertTrue ( tf != null ); } catch ( Exception e ) { fail ( e.getMessage() ); }
diff --git a/test/java/org/apache/fop/config/BaseConstructiveUserConfigTestCase.java b/test/java/org/apache/fop/config/BaseConstructiveUserConfigTestCase.java index b94c473..3583729 100644 --- a/test/java/org/apache/fop/config/BaseConstructiveUserConfigTestCase.java +++ b/test/java/org/apache/fop/config/BaseConstructiveUserConfigTestCase.java
@@ -19,19 +19,20 @@ package org.apache.fop.config; -public abstract class BaseConstructiveUserConfigTestCase extends BaseUserConfigTestCase { +import static org.junit.Assert.fail; - /** - * @see junit.framework.TestCase#TestCase(String) - */ - public BaseConstructiveUserConfigTestCase(String name) { - super(name); - } +import org.junit.Test; + +/** + * Super class of several user config cases. + */ +public abstract class BaseConstructiveUserConfigTestCase extends BaseUserConfigTestCase { /** * Test using a standard FOP font * @throws Exception checkstyle wants a comment here, even a silly one */ + @Test public void testUserConfig() throws Exception { try { initConfig();
diff --git a/test/java/org/apache/fop/config/BaseDestructiveUserConfigTestCase.java b/test/java/org/apache/fop/config/BaseDestructiveUserConfigTestCase.java index 0d294d3..2ea259e 100644 --- a/test/java/org/apache/fop/config/BaseDestructiveUserConfigTestCase.java +++ b/test/java/org/apache/fop/config/BaseDestructiveUserConfigTestCase.java
@@ -19,18 +19,21 @@ package org.apache.fop.config; -import org.apache.fop.apps.FOPException; +import static org.junit.Assert.fail; +import org.apache.fop.apps.FOPException; +import org.junit.Test; + +/** + * Super class for several user configuration failure cases. + */ public abstract class BaseDestructiveUserConfigTestCase extends BaseUserConfigTestCase { /** - * @see junit.framework.TestCase#TestCase(String) + * Test the user configuration failure. */ - public BaseDestructiveUserConfigTestCase(String name) { - super(name); - } - - public void testUserConfig() throws Exception { + @Test + public void testUserConfig() { try { initConfig(); convertFO();
diff --git a/test/java/org/apache/fop/config/BaseUserConfigTestCase.java b/test/java/org/apache/fop/config/BaseUserConfigTestCase.java index 6ce8333..ad88478 100644 --- a/test/java/org/apache/fop/config/BaseUserConfigTestCase.java +++ b/test/java/org/apache/fop/config/BaseUserConfigTestCase.java
@@ -23,16 +23,14 @@ import java.io.File; import java.io.IOException; -import org.xml.sax.SAXException; - import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - import org.apache.fop.apps.FOUserAgent; import org.apache.fop.render.pdf.BasePDFTestCase; +import org.xml.sax.SAXException; /** * Basic runtime test for FOP's font configuration. It is used to verify that @@ -47,13 +45,6 @@ /** - * @see junit.framework.TestCase#TestCase(String) - */ - public BaseUserConfigTestCase(String name) { - super(name); - } - - /** * @see org.apache.fop.render.pdf.BasePDFTestCase#init() */ protected void init() { @@ -102,8 +93,8 @@ */ protected abstract String getUserConfigFilename(); - /* - * @see junit.framework.TestCase#getName() + /** + * The name of this test. */ public String getName() { return getUserConfigFilename();
diff --git a/test/java/org/apache/fop/config/FOURIResolverTestCase.java b/test/java/org/apache/fop/config/FOURIResolverTestCase.java index e0f6d7f..1ffe8b0 100644 --- a/test/java/org/apache/fop/config/FOURIResolverTestCase.java +++ b/test/java/org/apache/fop/config/FOURIResolverTestCase.java
@@ -19,21 +19,23 @@ package org.apache.fop.config; +import static org.junit.Assert.fail; + import java.net.MalformedURLException; -import junit.framework.TestCase; - import org.apache.fop.apps.FOURIResolver; +import org.junit.Test; /** * This tests some aspects of the {@link FOURIResolver} class. */ -public class FOURIResolverTestCase extends TestCase { +public class FOURIResolverTestCase { /** * Checks the {@link FOURIResolver#checkBaseURL(String)} method. * @throws Exception if an error occurs */ + @Test public void testCheckBaseURI() throws Exception { FOURIResolver resolver = new FOURIResolver(true); System.out.println(resolver.checkBaseURL("./test/config"));
diff --git a/test/java/org/apache/fop/config/FontAttributesMissingTestCase.java b/test/java/org/apache/fop/config/FontAttributesMissingTestCase.java index 00e9b18..fe14a99 100644 --- a/test/java/org/apache/fop/config/FontAttributesMissingTestCase.java +++ b/test/java/org/apache/fop/config/FontAttributesMissingTestCase.java
@@ -19,18 +19,12 @@ package org.apache.fop.config; -/* +/** * this font is without a metrics-url or an embed-url */ public class FontAttributesMissingTestCase extends BaseDestructiveUserConfigTestCase { - public FontAttributesMissingTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_font_attributes_missing.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontBaseBadTestCase.java b/test/java/org/apache/fop/config/FontBaseBadTestCase.java index 792acf5..bffda30 100644 --- a/test/java/org/apache/fop/config/FontBaseBadTestCase.java +++ b/test/java/org/apache/fop/config/FontBaseBadTestCase.java
@@ -19,16 +19,12 @@ package org.apache.fop.config; -/* +/** * This font base does not exist and a relative font path is used. */ public class FontBaseBadTestCase extends BaseDestructiveUserConfigTestCase { - public FontBaseBadTestCase(String name) { - super(name); - } - - /** {@inheritDoc} */ + @Override public String getUserConfigFilename() { return "test_fontbase_bad.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontEmbedUrlBadTestCase.java b/test/java/org/apache/fop/config/FontEmbedUrlBadTestCase.java index aa8b9e0..1640024 100644 --- a/test/java/org/apache/fop/config/FontEmbedUrlBadTestCase.java +++ b/test/java/org/apache/fop/config/FontEmbedUrlBadTestCase.java
@@ -24,13 +24,7 @@ */ public class FontEmbedUrlBadTestCase extends BaseDestructiveUserConfigTestCase { - public FontEmbedUrlBadTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_font_embedurl_bad.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontEmbedUrlMalformedTestCase.java b/test/java/org/apache/fop/config/FontEmbedUrlMalformedTestCase.java index 6d41b0a..b45df16 100644 --- a/test/java/org/apache/fop/config/FontEmbedUrlMalformedTestCase.java +++ b/test/java/org/apache/fop/config/FontEmbedUrlMalformedTestCase.java
@@ -24,13 +24,7 @@ */ public class FontEmbedUrlMalformedTestCase extends BaseDestructiveUserConfigTestCase { - public FontEmbedUrlMalformedTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_font_embedurl_malformed.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontMetricsUrlBadTestCase.java b/test/java/org/apache/fop/config/FontMetricsUrlBadTestCase.java index 1662744..c22cd3e 100644 --- a/test/java/org/apache/fop/config/FontMetricsUrlBadTestCase.java +++ b/test/java/org/apache/fop/config/FontMetricsUrlBadTestCase.java
@@ -19,21 +19,12 @@ package org.apache.fop.config; -/* +/** * this font has a metrics-url that does not exist on filesystem */ public class FontMetricsUrlBadTestCase extends BaseDestructiveUserConfigTestCase { - /** - * @see junit.framework.TestCase#TestCase(String) - */ - public FontMetricsUrlBadTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_font_metricsurl_bad.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontMetricsUrlMalformedTestCase.java b/test/java/org/apache/fop/config/FontMetricsUrlMalformedTestCase.java index ae4dde8..27853ad 100644 --- a/test/java/org/apache/fop/config/FontMetricsUrlMalformedTestCase.java +++ b/test/java/org/apache/fop/config/FontMetricsUrlMalformedTestCase.java
@@ -19,18 +19,12 @@ package org.apache.fop.config; -/* +/** * this font has a malformed metrics-url */ public class FontMetricsUrlMalformedTestCase extends BaseDestructiveUserConfigTestCase { - public FontMetricsUrlMalformedTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_font_metricsurl_malformed.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontTripletAttributeMissingTestCase.java b/test/java/org/apache/fop/config/FontTripletAttributeMissingTestCase.java index dcc0098..186dd85 100644 --- a/test/java/org/apache/fop/config/FontTripletAttributeMissingTestCase.java +++ b/test/java/org/apache/fop/config/FontTripletAttributeMissingTestCase.java
@@ -19,18 +19,12 @@ package org.apache.fop.config; -/* +/** * this font has a missing font triplet attribute */ public class FontTripletAttributeMissingTestCase extends BaseDestructiveUserConfigTestCase { - public FontTripletAttributeMissingTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_font_tripletattribute_missing.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontsAutoDetectTestCase.java b/test/java/org/apache/fop/config/FontsAutoDetectTestCase.java index 403bf32..c435a08 100644 --- a/test/java/org/apache/fop/config/FontsAutoDetectTestCase.java +++ b/test/java/org/apache/fop/config/FontsAutoDetectTestCase.java
@@ -21,13 +21,7 @@ public class FontsAutoDetectTestCase extends BaseConstructiveUserConfigTestCase { - public FontsAutoDetectTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_fonts_autodetect.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontsDirectoryBadTestCase.java b/test/java/org/apache/fop/config/FontsDirectoryBadTestCase.java index e83e5ca..c19c161 100644 --- a/test/java/org/apache/fop/config/FontsDirectoryBadTestCase.java +++ b/test/java/org/apache/fop/config/FontsDirectoryBadTestCase.java
@@ -19,23 +19,17 @@ package org.apache.fop.config; -/* +/** * this font has a metrics-url that does not exist on filesystem */ public class FontsDirectoryBadTestCase extends BaseDestructiveUserConfigTestCase { - public FontsDirectoryBadTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override public String getUserConfigFilename() { return "test_fonts_directory_bad.xconf"; } - /** get test FOP config File */ + @Override protected String getFontFOFilePath() { return "test/xml/bugtests/font-dir.fo"; }
diff --git a/test/java/org/apache/fop/config/FontsDirectoryRecursiveTestCase.java b/test/java/org/apache/fop/config/FontsDirectoryRecursiveTestCase.java index 3c0205d..7eec1ca 100644 --- a/test/java/org/apache/fop/config/FontsDirectoryRecursiveTestCase.java +++ b/test/java/org/apache/fop/config/FontsDirectoryRecursiveTestCase.java
@@ -24,13 +24,7 @@ */ public class FontsDirectoryRecursiveTestCase extends BaseConstructiveUserConfigTestCase { - public FontsDirectoryRecursiveTestCase(String name) { - super(name); - } - - /** - * @see org.apache.fop.config.BaseUserConfigTestCase#getUserConfigFilename() - */ + @Override protected String getUserConfigFilename() { return "test_fonts_directory_recursive.xconf"; }
diff --git a/test/java/org/apache/fop/config/FontsSubstitutionTestCase.java b/test/java/org/apache/fop/config/FontsSubstitutionTestCase.java index 725f0d4..27630e0 100644 --- a/test/java/org/apache/fop/config/FontsSubstitutionTestCase.java +++ b/test/java/org/apache/fop/config/FontsSubstitutionTestCase.java
@@ -38,17 +38,7 @@ public class FontsSubstitutionTestCase extends BaseConstructiveUserConfigTestCase { - /** - * Main constructor - * @param name test case name - */ - public FontsSubstitutionTestCase(String name) { - super(name); - } - - /** - * {@inheritDoc} - */ + @Override protected byte[] convertFO(File foFile, FOUserAgent ua, boolean dumpPdfFile) throws Exception { PrintRenderer renderer = (PrintRenderer) ua.getRendererFactory() @@ -58,7 +48,8 @@ FontManager fontManager = ua.getFactory().getFontManager(); FontCollection[] fontCollections = new FontCollection[] { new Base14FontCollection(fontManager.isBase14KerningEnabled()), - new CustomFontCollection(renderer.getFontResolver(), renderer.getFontList()) + new CustomFontCollection(renderer.getFontResolver(), renderer.getFontList(), + ua.isComplexScriptFeaturesEnabled()) }; fontManager.setup(fontInfo, fontCollections); FontTriplet triplet = new FontTriplet("Times", "italic", @@ -72,9 +63,7 @@ return null; } - /** - * {@inheritDoc} - */ + @Override public String getUserConfigFilename() { return "test_fonts_substitution.xconf"; }
diff --git a/test/java/org/apache/fop/config/UserConfigTestSuite.java b/test/java/org/apache/fop/config/UserConfigTestSuite.java index 168d87d..d90efe3 100644 --- a/test/java/org/apache/fop/config/UserConfigTestSuite.java +++ b/test/java/org/apache/fop/config/UserConfigTestSuite.java
@@ -19,35 +19,26 @@ package org.apache.fop.config; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for font configuration. */ +@RunWith(Suite.class) +@SuiteClasses({ + FontBaseBadTestCase.class, + FontAttributesMissingTestCase.class, + FontTripletAttributeMissingTestCase.class, + FontMetricsUrlBadTestCase.class, + FontEmbedUrlBadTestCase.class, + FontMetricsUrlMalformedTestCase.class, + FontMetricsUrlMalformedTestCase.class, + FontsDirectoryRecursiveTestCase.class, + FontsAutoDetectTestCase.class, + FontsSubstitutionTestCase.class, + FOURIResolverTestCase.class +}) public class UserConfigTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Basic functionality test suite for user configuration"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(FontBaseBadTestCase.class)); - suite.addTest(new TestSuite(FontAttributesMissingTestCase.class)); - suite.addTest(new TestSuite(FontTripletAttributeMissingTestCase.class)); - suite.addTest(new TestSuite(FontMetricsUrlBadTestCase.class)); - suite.addTest(new TestSuite(FontEmbedUrlBadTestCase.class)); - suite.addTest(new TestSuite(FontMetricsUrlMalformedTestCase.class)); - suite.addTest(new TestSuite(FontEmbedUrlMalformedTestCase.class)); - suite.addTest(new TestSuite(FontsDirectoryRecursiveTestCase.class)); - suite.addTest(new TestSuite(FontsAutoDetectTestCase.class)); - suite.addTest(new TestSuite(FontsSubstitutionTestCase.class)); - suite.addTest(new TestSuite(FOURIResolverTestCase.class)); - //$JUnit-END$ - return suite; - } - }
diff --git a/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java b/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java index 45470ae..23af20a 100644 --- a/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java +++ b/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java
@@ -19,13 +19,16 @@ package org.apache.fop.datatypes; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; /** * Tests for URISpecification. */ -public class URISpecificationTestCase extends TestCase { +public class URISpecificationTestCase { + @Test public void testGetURL() throws Exception { String actual; @@ -42,6 +45,7 @@ assertEquals("http://localhost/test", actual); } + @Test public void testEscapeURI() throws Exception { String actual;
diff --git a/test/java/org/apache/fop/events/BasicEventTestCase.java b/test/java/org/apache/fop/events/BasicEventTestCase.java index c69dad0..87fc043 100644 --- a/test/java/org/apache/fop/events/BasicEventTestCase.java +++ b/test/java/org/apache/fop/events/BasicEventTestCase.java
@@ -19,12 +19,18 @@ package org.apache.fop.events; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import org.apache.fop.events.model.EventSeverity; +import org.junit.Test; -public class BasicEventTestCase extends TestCase { +public class BasicEventTestCase { + @Test public void testBasics() throws Exception { MyEventListener listener = new MyEventListener(); @@ -54,6 +60,7 @@ broadcaster.broadcastEvent(ev); } + @Test public void testEventProducer() throws Exception { MyEventListener listener = new MyEventListener();
diff --git a/test/java/org/apache/fop/events/EventChecker.java b/test/java/org/apache/fop/events/EventChecker.java index afef11d..85193c0 100644 --- a/test/java/org/apache/fop/events/EventChecker.java +++ b/test/java/org/apache/fop/events/EventChecker.java
@@ -19,12 +19,12 @@ package org.apache.fop.events; -import junit.framework.Assert; +import static org.junit.Assert.fail; /** * Class that checks that an expected event is produced, and only this one. */ -class EventChecker extends Assert implements EventListener { +class EventChecker implements EventListener { private final String expectedEventID;
diff --git a/test/java/org/apache/fop/events/EventProcessingTestCase.java b/test/java/org/apache/fop/events/EventProcessingTestCase.java index 0c42ec5..9660e5b 100644 --- a/test/java/org/apache/fop/events/EventProcessingTestCase.java +++ b/test/java/org/apache/fop/events/EventProcessingTestCase.java
@@ -29,14 +29,7 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamSource; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - import org.apache.commons.io.output.NullOutputStream; - -import org.apache.xmlgraphics.util.MimeConstants; - import org.apache.fop.ResourceEventProducer; import org.apache.fop.apps.FOPException; import org.apache.fop.apps.Fop; @@ -47,11 +40,13 @@ import org.apache.fop.fonts.FontEventProducer; import org.apache.fop.layoutmgr.BlockLevelEventProducer; import org.apache.fop.layoutmgr.inline.InlineLevelEventProducer; +import org.apache.xmlgraphics.util.MimeConstants; +import org.junit.Test; /** * Tests that the event notification system runs smoothly. */ -public class EventProcessingTestCase extends TestCase { +public class EventProcessingTestCase { private final FopFactory fopFactory = FopFactory.newInstance(); @@ -59,8 +54,7 @@ private final File basedir; - public EventProcessingTestCase(String name) { - super(name); + public EventProcessingTestCase() { String base = System.getProperty("basedir"); if (base != null) { basedir = new File(base); @@ -81,45 +75,45 @@ eventChecker.end(); } + @Test public void testArea() throws FOPException, TransformerException { doTest("area.fo", AreaEventProducer.class.getName() + ".unresolvedIDReferenceOnPage"); } + @Test public void testResource() throws FOPException, TransformerException { doTest("resource.fo", ResourceEventProducer.class.getName() + ".imageNotFound"); } + @Test public void testValidation() throws FOPException, TransformerException { doTest("validation.fo", FOValidationEventProducer.class.getName() + ".invalidPropertyValue"); } + @Test public void testTable() throws FOPException, TransformerException { doTest("table.fo", TableEventProducer.class.getName() + ".noTablePaddingWithCollapsingBorderModel"); } + @Test public void testBlockLevel() throws FOPException, TransformerException { doTest("block-level.fo", BlockLevelEventProducer.class.getName() + ".overconstrainedAdjustEndIndent"); } + @Test public void testInlineLevel() throws FOPException, TransformerException { doTest("inline-level.fo", InlineLevelEventProducer.class.getName() + ".lineOverflows"); } + @Test public void testFont() throws FOPException, TransformerException { doTest("font.fo", FontEventProducer.class.getName() + ".fontSubstituted"); } - - - public static Test suite() { - TestSuite suite = new TestSuite(); - suite.addTestSuite(EventProcessingTestCase.class); - return suite; - } }
diff --git a/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java b/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java index 8bddfd0..7501c1b 100644 --- a/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java +++ b/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.fo.flow.table; +import static org.junit.Assert.assertEquals; + import java.awt.Color; import java.util.Iterator; import java.util.List; @@ -26,6 +28,7 @@ import org.apache.fop.fo.Constants; import org.apache.fop.fo.FONode.FONodeIterator; import org.apache.fop.fo.properties.CommonBorderPaddingBackground.BorderInfo; +import org.junit.Test; /** * A testcase for the resolution of collapsed borders in the FO tree, taking @@ -130,6 +133,7 @@ (Color) resolvedBorder[1]); } + @Test public void testCollapsedConditionalBorders() throws Exception { setUp("table/collapsed-conditional-borders.fo"); int tableNum = 0; @@ -154,6 +158,7 @@ } while (tableIterator.hasNext()); } + @Test public void testCollapsedConditionalBordersHeaderFooter() throws Exception { setUp("table/collapsed-conditional-borders_header-footer.fo"); int tableNum = 0;
diff --git a/test/java/org/apache/fop/fo/flow/table/ErrorCheckTestCase.java b/test/java/org/apache/fop/fo/flow/table/ErrorCheckTestCase.java index 5dbb66a..a3a6b9e 100644 --- a/test/java/org/apache/fop/fo/flow/table/ErrorCheckTestCase.java +++ b/test/java/org/apache/fop/fo/flow/table/ErrorCheckTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.fo.flow.table; +import static org.junit.Assert.fail; + import org.apache.fop.fo.ValidationException; /**
diff --git a/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java b/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java index bc3d2b4..5473f09 100644 --- a/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java +++ b/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.fo.flow.table; +import org.junit.Test; + /** * Testcase checking that cells spanning further than their parent element aren't * accepted. @@ -29,18 +31,22 @@ super(); } + @Test public void testBody1() throws Exception { launchTest("table/illegal-row-span_body_1.fo"); } + @Test public void testBody2() throws Exception { launchTest("table/illegal-row-span_body_2.fo"); } + @Test public void testHeader() throws Exception { launchTest("table/illegal-row-span_header.fo"); } + @Test public void testFooter() throws Exception { launchTest("table/illegal-row-span_footer.fo"); }
diff --git a/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java b/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java index 6d2c4f8..48c25fa 100644 --- a/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java +++ b/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java
@@ -19,9 +19,16 @@ package org.apache.fop.fo.flow.table; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + import java.util.Iterator; import java.util.List; +import org.junit.Test; + /** * Tests that RowGroupBuilder returns, for each part of a table, the expected number of * row-groups with the expected number or rows in each. @@ -137,34 +144,42 @@ checkNextTableRowGroups(tableIter, new int[] {2}, new int[] {1, 3}, new int[][] {{2, 1, 3}}); } + @Test public void testWithRowsSimple() throws Exception { checkSimple("table/RowGroupBuilder_simple.fo"); } + @Test public void testWithRowsSpans() throws Exception { checkSpans("table/RowGroupBuilder_spans.fo"); } + @Test public void testNoRowSimple() throws Exception { checkSimple("table/RowGroupBuilder_no-row_simple.fo"); } + @Test public void testNoRowSpans() throws Exception { checkSpans("table/RowGroupBuilder_no-row_spans.fo"); } + @Test public void testNoColWithRowsSimple() throws Exception { checkSimple("table/RowGroupBuilder_no-col_simple.fo"); } + @Test public void testNoColWithRowsSpans() throws Exception { checkSpans("table/RowGroupBuilder_no-col_spans.fo"); } + @Test public void testNoColNoRowSimple() throws Exception { checkSimple("table/RowGroupBuilder_no-col_no-row_simple.fo"); } + @Test public void testNoColNoRowSpans() throws Exception { checkSpans("table/RowGroupBuilder_no-col_no-row_spans.fo"); }
diff --git a/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java b/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java index dc61b1d..0f24ae6 100644 --- a/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java +++ b/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java
@@ -19,10 +19,13 @@ package org.apache.fop.fo.flow.table; +import static org.junit.Assert.assertEquals; + import java.util.Iterator; import org.apache.fop.datatypes.PercentBaseContext; import org.apache.fop.fo.FObj; +import org.junit.Test; public class TableColumnColumnNumberTestCase extends AbstractTableTestCase { @@ -61,6 +64,7 @@ assertEquals(width, c.getColumnWidth().getValue(percentBaseContext)); } + @Test public void testColumnNumber() throws Exception { setUp("table/table-column_column-number.fo"); Iterator tableIter = getTableIterator(); @@ -97,6 +101,7 @@ } } + @Test public void testImplicitColumns() throws Exception { setUp("table/implicit_columns_column-number.fo"); percentBaseContext.setUnitaryWidth(100000);
diff --git a/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java b/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java index 0c7effd..665a887 100644 --- a/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java +++ b/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java
@@ -19,6 +19,7 @@ package org.apache.fop.fo.flow.table; +import org.junit.Test; public class TooManyColumnsTestCase extends ErrorCheckTestCase { @@ -26,26 +27,32 @@ super(); } + @Test public void testBody1() throws Exception { launchTest("table/too-many-columns_body_1.fo"); } + @Test public void testBody2() throws Exception { launchTest("table/too-many-columns_body_2.fo"); } + @Test public void testBody3() throws Exception { launchTest("table/too-many-columns_body_3.fo"); } + @Test public void testBody4() throws Exception { launchTest("table/too-many-columns_body_4.fo"); } + @Test public void testHeader() throws Exception { launchTest("table/too-many-columns_header.fo"); } + @Test public void testFooter() throws Exception { launchTest("table/too-many-columns_footer.fo"); }
diff --git a/test/java/org/apache/fop/fonts/DejaVuLGCSerifTest.java b/test/java/org/apache/fop/fonts/DejaVuLGCSerifTest.java index fb0c3a7..806de3d 100644 --- a/test/java/org/apache/fop/fonts/DejaVuLGCSerifTest.java +++ b/test/java/org/apache/fop/fonts/DejaVuLGCSerifTest.java
@@ -19,16 +19,19 @@ package org.apache.fop.fonts; +import static org.junit.Assert.assertEquals; + import java.io.File; -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; /** * */ -public class DejaVuLGCSerifTest extends TestCase { +public class DejaVuLGCSerifTest { - private FontResolver fontResolver = FontManager.createMinimalFontResolver(); + private FontResolver fontResolver = FontManager.createMinimalFontResolver(false); private CustomFont font; /** @@ -37,6 +40,7 @@ * @throws Exception * if the test fails. */ + @Before public void setUp() throws Exception { File file = new File("test/resources/fonts/DejaVuLGCSerif.ttf"); font = FontLoader.loadFont(file, "", true, EncodingMode.AUTO, @@ -46,6 +50,7 @@ /** * Simple test to see if font name was detected correctly. */ + @Test public void testFontName() { assertEquals("DejaVuLGCSerif", font.getFontName()); }
diff --git a/test/java/org/apache/fop/fonts/EncodingModeTest.java b/test/java/org/apache/fop/fonts/EncodingModeTest.java index 4e81c46..310916a 100644 --- a/test/java/org/apache/fop/fonts/EncodingModeTest.java +++ b/test/java/org/apache/fop/fonts/EncodingModeTest.java
@@ -19,15 +19,20 @@ package org.apache.fop.fonts; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; -public class EncodingModeTest extends TestCase { +import org.junit.Test; + +public class EncodingModeTest { + + @Test public void testGetName() { assertEquals("auto", EncodingMode.AUTO.getName()); assertEquals("single-byte", EncodingMode.SINGLE_BYTE.getName()); assertEquals("cid", EncodingMode.CID.getName()); } + @Test public void testGetValue() { assertEquals(EncodingMode.AUTO, EncodingMode.getEncodingMode("auto")); assertEquals(EncodingMode.SINGLE_BYTE, EncodingMode.getEncodingMode("single-byte"));
diff --git a/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java b/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java index 89527a7..a55d94e 100644 --- a/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java +++ b/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.fonts.truetype; +import static org.junit.Assert.assertTrue; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -26,12 +28,13 @@ import java.util.HashMap; import java.util.Map; -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; /** * Tests {@link GlyfTable}. */ -public class GlyfTableTestCase extends TestCase { +public class GlyfTableTestCase { private final static class DirData { @@ -50,7 +53,7 @@ private FontFileReader originalFontReader; - @Override + @Before public void setUp() throws IOException { originalFontReader = new FontFileReader("test/resources/fonts/DejaVuLGCSerif.ttf"); } @@ -60,6 +63,7 @@ * * @throws IOException if an I/O error occurs */ + @Test public void testPopulateGlyphsWithComposites() throws IOException { // Glyph 408 -> U+01D8 "uni01D8" this is a composite glyph. int[] composedIndices = setupTest(408); @@ -77,6 +81,7 @@ * * @throws IOException if an I/O error occurs */ + @Test public void testPopulateNoCompositeGlyphs() throws IOException { int[] composedIndices = setupTest(36, 37, 38); // "A", "B", "C" int[] expected = new int[composedIndices.length]; @@ -90,6 +95,7 @@ * * @throws IOException if an I/O error occurs */ + @Test public void testGlyphsNotRemappedTwice() throws IOException { int composedGlyph = 12; // The order of these glyph indices, must NOT be changed! (see javadoc above) @@ -108,6 +114,7 @@ * * @throws IOException if an I/O error occurs */ + @Test public void testSingleRecursionStep() throws IOException { // Glyph 2077 -> U+283F "uni283F" this is composed of a composite glyph (recursive). int[] composedIndices = setupTest(2077);
diff --git a/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java b/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java index 76faa21..6e6f62b 100644 --- a/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java +++ b/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java
@@ -19,129 +19,20 @@ package org.apache.fop.fotreetest; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.filefilter.AndFileFilter; -import org.apache.commons.io.filefilter.IOFileFilter; -import org.apache.commons.io.filefilter.NameFileFilter; -import org.apache.commons.io.filefilter.PrefixFileFilter; -import org.apache.commons.io.filefilter.SuffixFileFilter; -import org.apache.commons.io.filefilter.TrueFileFilter; - -import org.apache.fop.DebugHelper; import org.apache.fop.fo.flow.table.CollapsedConditionalBorderTestCase; import org.apache.fop.fo.flow.table.IllegalRowSpanTestCase; import org.apache.fop.fo.flow.table.RowGroupBuilderTestCase; import org.apache.fop.fo.flow.table.TableColumnColumnNumberTestCase; import org.apache.fop.fo.flow.table.TooManyColumnsTestCase; -import org.apache.fop.layoutengine.LayoutEngineTestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; /** * JUnit test suit for running layout engine test under JUnit control. */ +@RunWith(Suite.class) +@Suite.SuiteClasses({ TooManyColumnsTestCase.class, IllegalRowSpanTestCase.class, + RowGroupBuilderTestCase.class, TableColumnColumnNumberTestCase.class, + CollapsedConditionalBorderTestCase.class, FOTreeTester.class }) public final class FOTreeTestSuite { - - static { - DebugHelper.registerStandardElementListObservers(); - } - - private FOTreeTestSuite() { - //don't instantiate! - } - - /** - * @return the test suite with all the tests (one for each XML file) - * @throws IOException in case of an I/O problem - */ - public static Test suite() throws IOException { - TestSuite suite = new TestSuite(); - addXMLTestCases(suite); - addUnitTestCases(suite); - return suite; - } - - private static void addXMLTestCases(TestSuite suite) throws IOException { - File mainDir = new File("test/fotree"); - - final FOTreeTester tester = new FOTreeTester(); - - IOFileFilter filter; - String single = System.getProperty("fop.fotree.single"); - String startsWith = System.getProperty("fop.fotree.starts-with"); - if (single != null) { - filter = new NameFileFilter(single); - } else if (startsWith != null) { - filter = new PrefixFileFilter(startsWith); - filter = new AndFileFilter(filter, new SuffixFileFilter(".fo")); - } else { - filter = new SuffixFileFilter(".fo"); - filter = LayoutEngineTestSuite.decorateWithDisabledList(filter); - } - Collection files = FileUtils.listFiles(new File(mainDir, "testcases"), - filter, TrueFileFilter.INSTANCE); - String privateTests = System.getProperty("fop.fotree.private"); - if ("true".equalsIgnoreCase(privateTests)) { - Collection privateFiles = FileUtils.listFiles( - new File(mainDir, "private-testcases"), - filter, TrueFileFilter.INSTANCE); - files.addAll(privateFiles); - } - Iterator i = files.iterator(); - while (i.hasNext()) { - File f = (File)i.next(); - addTestCase(suite, tester, f); - } - } - - private static void addTestCase(TestSuite suite, - final FOTreeTester tester, final File f) { - suite.addTest(new FOTreeTestCase(f.getName()) { - public void runTest() throws Exception { - try { - prepare(tester, f); - testMain(); - } catch (Exception e) { - org.apache.commons.logging.LogFactory.getLog(this.getClass()).info( - "Error on " + f.getName()); - throw e; - } - } - }); - } - - private static void addUnitTestCases(TestSuite suite) { - suite.addTestSuite(TooManyColumnsTestCase.class); - suite.addTestSuite(IllegalRowSpanTestCase.class); - suite.addTestSuite(RowGroupBuilderTestCase.class); - suite.addTestSuite(TableColumnColumnNumberTestCase.class); - suite.addTestSuite(CollapsedConditionalBorderTestCase.class); - } - - private static class FOTreeTestCase extends TestCase { - - private FOTreeTester tester; - private File testFile; - - public FOTreeTestCase(String name) { - super(name); - } - - public void prepare(FOTreeTester tester, File testFile) { - //super(testFile.getName()); - this.tester = tester; - this.testFile = testFile; - } - - public void testMain() throws Exception { - tester.runTest(testFile); - } - } }
diff --git a/test/java/org/apache/fop/fotreetest/FOTreeTester.java b/test/java/org/apache/fop/fotreetest/FOTreeTester.java index ba9fde4..80bf440 100644 --- a/test/java/org/apache/fop/fotreetest/FOTreeTester.java +++ b/test/java/org/apache/fop/fotreetest/FOTreeTester.java
@@ -20,88 +20,154 @@ package org.apache.fop.fotreetest; import java.io.File; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLFilterImpl; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.filefilter.AndFileFilter; +import org.apache.commons.io.filefilter.IOFileFilter; +import org.apache.commons.io.filefilter.NameFileFilter; +import org.apache.commons.io.filefilter.PrefixFileFilter; +import org.apache.commons.io.filefilter.SuffixFileFilter; +import org.apache.commons.io.filefilter.TrueFileFilter; + +import org.apache.fop.DebugHelper; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; import org.apache.fop.apps.FopFactory; import org.apache.fop.apps.FopFactoryConfigurator; import org.apache.fop.fotreetest.ext.TestElementMapping; +import org.apache.fop.layoutengine.LayoutEngineTestUtils; import org.apache.fop.util.ConsoleEventListenerForTests; /** * Test driver class for FO tree tests. */ +@RunWith(Parameterized.class) public class FOTreeTester { + @BeforeClass + public static void registerElementListObservers() { + DebugHelper.registerStandardElementListObservers(); + } + + @Parameters + public static Collection<File[]> testXMLTestCases() throws Exception { + File mainDir = new File("test/fotree"); + + IOFileFilter filter; + String single = System.getProperty("fop.fotree.single"); + String startsWith = System.getProperty("fop.fotree.starts-with"); + if (single != null) { + filter = new NameFileFilter(single); + } else if (startsWith != null) { + filter = new PrefixFileFilter(startsWith); + filter = new AndFileFilter(filter, new SuffixFileFilter(".fo")); + } else { + filter = new SuffixFileFilter(".fo"); + filter = LayoutEngineTestUtils.decorateWithDisabledList(filter); + } + Collection<File> files = FileUtils.listFiles(new File(mainDir, "testcases"), filter, + TrueFileFilter.INSTANCE); + String privateTests = System.getProperty("fop.fotree.private"); + if ("true".equalsIgnoreCase(privateTests)) { + Collection privateFiles = FileUtils.listFiles(new File(mainDir, "private-testcases"), + filter, TrueFileFilter.INSTANCE); + files.addAll(privateFiles); + } + // Unfortunately JUnit forces us to return a collection of arrays. + Collection<File[]> parameters = new ArrayList<File[]>(); + for (File f : files) { + parameters.add(new File[] { f }); + } + return parameters; + } + private FopFactory fopFactory = FopFactory.newInstance(); + private final File testFile; + /** * Main constructor + * + * @param testFile the FO file to test */ - public FOTreeTester() { + public FOTreeTester(File testFile) { fopFactory.addElementMapping(new TestElementMapping()); + this.testFile = testFile; } /** * Runs a test. - * @param testFile the test file. * @throws Exception if a test or FOP itself fails */ - public void runTest(File testFile) throws Exception { - ResultCollector collector = ResultCollector.getInstance(); - collector.reset(); - - SAXParserFactory spf = SAXParserFactory.newInstance(); - spf.setNamespaceAware(true); - spf.setValidating(false); - SAXParser parser = spf.newSAXParser(); - XMLReader reader = parser.getXMLReader(); - - //Resetting values modified by processing instructions - fopFactory.setBreakIndentInheritanceOnReferenceAreaBoundary( - FopFactoryConfigurator.DEFAULT_BREAK_INDENT_INHERITANCE); - fopFactory.setSourceResolution(FopFactoryConfigurator.DEFAULT_SOURCE_RESOLUTION); - - FOUserAgent ua = fopFactory.newFOUserAgent(); - ua.setBaseURL(testFile.getParentFile().toURI().toURL().toString()); - ua.setFOEventHandlerOverride(new DummyFOEventHandler(ua)); - ua.getEventBroadcaster().addEventListener( - new ConsoleEventListenerForTests(testFile.getName())); - - //Used to set values in the user agent through processing instructions - reader = new PIListener(reader, ua); - - Fop fop = fopFactory.newFop(ua); - - reader.setContentHandler(fop.getDefaultHandler()); - reader.setDTDHandler(fop.getDefaultHandler()); - reader.setErrorHandler(fop.getDefaultHandler()); - reader.setEntityResolver(fop.getDefaultHandler()); + @Test + public void runTest() throws Exception { try { - reader.parse(testFile.toURI().toURL().toExternalForm()); - } catch (Exception e) { - collector.notifyError(e.getLocalizedMessage()); - throw e; - } + ResultCollector collector = ResultCollector.getInstance(); + collector.reset(); - List results = collector.getResults(); - if (results.size() > 0) { - for (int i = 0; i < results.size(); i++) { - System.out.println((String)results.get(i)); + SAXParserFactory spf = SAXParserFactory.newInstance(); + spf.setNamespaceAware(true); + spf.setValidating(false); + SAXParser parser = spf.newSAXParser(); + XMLReader reader = parser.getXMLReader(); + + // Resetting values modified by processing instructions + fopFactory.setBreakIndentInheritanceOnReferenceAreaBoundary( + FopFactoryConfigurator.DEFAULT_BREAK_INDENT_INHERITANCE); + fopFactory.setSourceResolution(FopFactoryConfigurator.DEFAULT_SOURCE_RESOLUTION); + + FOUserAgent ua = fopFactory.newFOUserAgent(); + ua.setBaseURL(testFile.getParentFile().toURI().toURL().toString()); + ua.setFOEventHandlerOverride(new DummyFOEventHandler(ua)); + ua.getEventBroadcaster().addEventListener( + new ConsoleEventListenerForTests(testFile.getName())); + + // Used to set values in the user agent through processing instructions + reader = new PIListener(reader, ua); + + Fop fop = fopFactory.newFop(ua); + + reader.setContentHandler(fop.getDefaultHandler()); + reader.setDTDHandler(fop.getDefaultHandler()); + reader.setErrorHandler(fop.getDefaultHandler()); + reader.setEntityResolver(fop.getDefaultHandler()); + try { + reader.parse(testFile.toURI().toURL().toExternalForm()); + } catch (Exception e) { + collector.notifyError(e.getLocalizedMessage()); + throw e; } - throw new IllegalStateException((String)results.get(0)); + + List results = collector.getResults(); + if (results.size() > 0) { + for (int i = 0; i < results.size(); i++) { + System.out.println((String) results.get(i)); + } + throw new IllegalStateException((String) results.get(0)); + } + } catch (Exception e) { + org.apache.commons.logging.LogFactory.getLog(this.getClass()).info( + "Error on " + testFile.getName()); + throw e; } } - private class PIListener extends XMLFilterImpl { + private static class PIListener extends XMLFilterImpl { private FOUserAgent userAgent;
diff --git a/test/java/org/apache/fop/fotreetest/FOTreeUnitTester.java b/test/java/org/apache/fop/fotreetest/FOTreeUnitTester.java index 5513a89..0906c26 100644 --- a/test/java/org/apache/fop/fotreetest/FOTreeUnitTester.java +++ b/test/java/org/apache/fop/fotreetest/FOTreeUnitTester.java
@@ -24,15 +24,12 @@ import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import junit.framework.TestCase; - -import org.xml.sax.XMLReader; - import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; import org.apache.fop.apps.FopFactory; import org.apache.fop.fo.FOEventHandler; import org.apache.fop.util.ConsoleEventListenerForTests; +import org.xml.sax.XMLReader; /** @@ -40,7 +37,7 @@ * to parse an FO file and register a proper {@link FOEventHandler}. That handler will be * the entry point to test classes from the FObj hierarchy. */ -public abstract class FOTreeUnitTester extends TestCase { +public abstract class FOTreeUnitTester { private XMLReader foReader;
diff --git a/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java b/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java index 97bfb4d..bab3289 100644 --- a/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java +++ b/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java
@@ -19,12 +19,14 @@ package org.apache.fop.image.loader.batik; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + import java.awt.image.Raster; import java.awt.image.RenderedImage; import java.io.File; -import junit.framework.TestCase; - import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FopFactory; import org.apache.xmlgraphics.image.loader.Image; @@ -35,23 +37,24 @@ import org.apache.xmlgraphics.image.loader.impl.ImageRendered; import org.apache.xmlgraphics.image.loader.impl.ImageXMLDOM; import org.apache.xmlgraphics.image.writer.ImageWriterUtil; +import org.junit.Test; /** * Tests for bundled ImageLoader implementations. */ -public class ImageLoaderTestCase extends TestCase { +public class ImageLoaderTestCase { private static final File DEBUG_TARGET_DIR = null; //new File("D:/"); private FopFactory fopFactory; - public ImageLoaderTestCase(String name) { - super(name); + public ImageLoaderTestCase() { fopFactory = FopFactory.newInstance(); fopFactory.setSourceResolution(72); fopFactory.setTargetResolution(300); } + @Test public void testSVG() throws Exception { String uri = "test/resources/images/img-w-size.svg"; @@ -90,6 +93,7 @@ assertEquals(16000, info.getSize().getHeightMpt()); } + @Test public void testSVGNoViewbox() throws Exception { String uri = "test/resources/images/circles.svg"; @@ -135,6 +139,7 @@ assertEquals(340158, info.getSize().getHeightMpt()); } + @Test public void testWMF() throws Exception { String uri = "test/resources/images/testChart.wmf"; @@ -162,6 +167,7 @@ assertEquals(612000, info.getSize().getHeightMpt()); } + @Test public void testSVGWithReferences() throws Exception { String uri = "test/resources/fop/svg/images.svg"; FopFactory ff = FopFactory.newInstance(); @@ -213,7 +219,4 @@ } assertFalse("Embedding JPG into SVG failed", same); } - - - }
diff --git a/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java b/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java index 057866e..691a287 100644 --- a/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java +++ b/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java
@@ -19,6 +19,9 @@ package org.apache.fop.image.loader.batik; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import java.io.IOException; import javax.xml.transform.Source; @@ -26,42 +29,39 @@ import javax.xml.transform.URIResolver; import javax.xml.transform.dom.DOMSource; -import junit.framework.TestCase; - +import org.apache.batik.dom.svg.SVGDOMImplementation; +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.apps.FopFactory; +import org.apache.fop.apps.MimeConstants; +import org.apache.xmlgraphics.image.loader.ImageException; +import org.apache.xmlgraphics.image.loader.ImageInfo; +import org.apache.xmlgraphics.image.loader.ImageManager; +import org.junit.Test; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.apache.batik.dom.svg.SVGDOMImplementation; - -import org.apache.xmlgraphics.image.loader.ImageException; -import org.apache.xmlgraphics.image.loader.ImageInfo; -import org.apache.xmlgraphics.image.loader.ImageManager; - -import org.apache.fop.apps.FOUserAgent; -import org.apache.fop.apps.FopFactory; -import org.apache.fop.apps.MimeConstants; - /** * Tests for bundled image preloader implementations. */ -public class ImagePreloaderTestCase extends TestCase { +public class ImagePreloaderTestCase { private FopFactory fopFactory; - public ImagePreloaderTestCase(String name) { - super(name); + public ImagePreloaderTestCase() { fopFactory = FopFactory.newInstance(); fopFactory.setSourceResolution(72); fopFactory.setTargetResolution(300); } + @Test public void testSVG() throws Exception { String uri = "test/resources/images/img-w-size.svg"; checkSVGFile(uri); } + @Test public void testSVGZ() throws Exception { String uri = "test/resources/images/img-w-size.svgz"; @@ -83,6 +83,7 @@ assertEquals(16000, info.getSize().getHeightMpt()); } + @Test public void testSVGNoSize() throws Exception { String uri = "test/resources/images/img.svg"; FOUserAgent userAgent = fopFactory.newFOUserAgent(); @@ -99,6 +100,7 @@ assertEquals(100000, info.getSize().getHeightMpt()); } + @Test public void testSVGWithDOM() throws Exception { String uri = "my:SVGImage"; FOUserAgent userAgent = fopFactory.newFOUserAgent(); @@ -143,6 +145,7 @@ assertEquals(20000, info.getSize().getHeightMpt()); } + @Test public void testWMF() throws Exception { String uri = "test/resources/images/testChart.wmf";
diff --git a/test/java/org/apache/fop/intermediate/AbstractIntermediateTestCase.java b/test/java/org/apache/fop/intermediate/AbstractIntermediateTestCase.java index d166213..6705d7e 100644 --- a/test/java/org/apache/fop/intermediate/AbstractIntermediateTestCase.java +++ b/test/java/org/apache/fop/intermediate/AbstractIntermediateTestCase.java
@@ -33,7 +33,9 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.dom.DOMSource; -import org.custommonkey.xmlunit.XMLTestCase; +import org.custommonkey.xmlunit.XMLAssert; +import org.junit.After; +import org.junit.Before; import org.w3c.dom.Document; import org.xml.sax.SAXException; @@ -49,7 +51,7 @@ /** * Abstract base class for intermediate format tests. */ -public abstract class AbstractIntermediateTestCase extends XMLTestCase { +public abstract class AbstractIntermediateTestCase { /** the test environment */ protected static TestAssistant testAssistant = new TestAssistant(); @@ -76,30 +78,27 @@ */ public AbstractIntermediateTestCase(File testFile) throws IOException { - super(testFile.getName()); this.testFile = testFile; } - /** {@inheritDoc} */ - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { setupOutputDirectory(); this.testDoc = testAssistant.loadTestCase(testFile); this.fopFactory = testAssistant.getFopFactory(testDoc); intermediate = buildIntermediateDocument(testAssistant.getTestcase2FOStylesheet()); if (outputDir != null) { testAssistant.saveDOM(intermediate, new File(outputDir, - getName() + ".1" + getIntermediateFileExtension())); + testFile.getName() + ".1" + getIntermediateFileExtension())); } } - /** {@inheritDoc} */ - protected void tearDown() throws Exception { + @After + public void tearDown() throws Exception { //Release memory this.intermediate = null; this.fopFactory = null; this.testDoc = null; - super.tearDown(); } /** @@ -172,11 +171,12 @@ Source src = new DOMSource(intermediate); Document doc = parseAndRenderToIntermediateFormat(src); if (outputDir != null) { - File tgtFile = new File(outputDir, getName() + ".2" + getIntermediateFileExtension()); + File tgtFile = new File(outputDir, testFile.getName() + ".2" + + getIntermediateFileExtension()); testAssistant.saveDOM(doc, tgtFile); } - assertXMLEqual(intermediate, doc); + XMLAssert.assertXMLEqual(intermediate, doc); } /** @@ -195,7 +195,7 @@ public void testParserToPDF() throws Exception { OutputStream out; if (outputDir != null) { - File tgtFile = new File(outputDir, getName() + ".pdf"); + File tgtFile = new File(outputDir, testFile.getName() + ".pdf"); out = new FileOutputStream(tgtFile); out = new BufferedOutputStream(out); } else { @@ -219,6 +219,13 @@ throws Exception; /** + * Run the test. + * + * @throws Exception if an error occurs during the test + */ + public abstract void runTest() throws Exception; + + /** * Sets an error listener which doesn't swallow errors like Xalan's default one. * @param transformer the transformer to set the error listener on */
diff --git a/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java b/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java index e3135c5..6451838 100644 --- a/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java +++ b/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java
@@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.util.Collection; import javax.xml.transform.Result; import javax.xml.transform.Source; @@ -32,25 +33,39 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.sax.TransformerHandler; -import org.w3c.dom.Document; - import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; -import org.apache.fop.apps.FopFactory; import org.apache.fop.apps.MimeConstants; import org.apache.fop.area.AreaTreeModel; import org.apache.fop.area.AreaTreeParser; import org.apache.fop.area.RenderPagesModel; import org.apache.fop.fonts.FontInfo; +import org.apache.fop.layoutengine.LayoutEngineTestUtils; import org.apache.fop.render.Renderer; import org.apache.fop.render.xml.XMLRenderer; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.w3c.dom.Document; /** * Tests the area tree parser. */ +@RunWith(Parameterized.class) public class AreaTreeParserTestCase extends AbstractIntermediateTestCase { /** + * Creates the parameters for this test. + * + * @return the list of file arrays populated with test files + * @throws IOException if an I/O error occurs while reading the test file + */ + @Parameters + public static Collection<File[]> getParameters() throws IOException { + return LayoutEngineTestUtils.getTestFiles(); + } + /** * Constructor for the test suite that is used for each test file. * @param testFile the test file to run * @throws IOException @@ -132,4 +147,17 @@ return (Document)domResult.getNode(); } + @Override + @Test + public void runTest() throws Exception { + try { + testParserToIntermediateFormat(); + testParserToPDF(); + } catch (Exception e) { + org.apache.commons.logging.LogFactory.getLog(this.getClass()).error( + "Error on " + testFile.getName()); + throw e; + } + } + }
diff --git a/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java b/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java index 661dbad..3fc855c 100644 --- a/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java +++ b/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java
@@ -19,53 +19,14 @@ package org.apache.fop.intermediate; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.fop.layoutengine.LayoutEngineTestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * JUnit test suite for the area tree XML format */ +@RunWith(Suite.class) +@SuiteClasses({ AreaTreeParserTestCase.class }) public class AreaTreeXMLFormatTestSuite { - - /** - * @return the test suite with all the tests (one for each XML file) - * @throws IOException in case of an I/O problem - */ - public static Test suite() throws IOException { - TestSuite suite = new TestSuite(); - - Collection files = LayoutEngineTestSuite.getTestFiles(); - - Iterator i = files.iterator(); - while (i.hasNext()) { - File f = (File)i.next(); - addATTestCase(suite, f); - } - - return suite; - } - - private static void addATTestCase(TestSuite suite, - final File f) throws IOException { - suite.addTest(new AreaTreeParserTestCase(f) { - public void runTest() throws Exception { - try { - testParserToIntermediateFormat(); - testParserToPDF(); - } catch (Exception e) { - org.apache.commons.logging.LogFactory.getLog( - this.getClass()).error("Error on " + f.getName()); - throw e; - } - } - }); - } - }
diff --git a/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java b/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java index 226bfc6..7c03a28 100644 --- a/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java +++ b/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.intermediate; +import static org.junit.Assert.fail; + import java.io.File; import javax.xml.transform.ErrorListener; @@ -29,7 +31,8 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamSource; -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; @@ -48,13 +51,12 @@ /** * This test checks the correct mimicking of a different output format. */ -public class IFMimickingTestCase extends TestCase { +public class IFMimickingTestCase { private FopFactory fopFactory; - /** {@inheritDoc} */ - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { fopFactory = FopFactory.newInstance(); File configFile = new File("test/test-no-xml-metrics.xconf"); fopFactory.setUserConfig(configFile); @@ -64,6 +66,7 @@ * Tests IF document handler mimicking with PDF output. * @throws Exception if an error occurs */ + @Test public void testMimickingPDF() throws Exception { doTestMimicking(MimeConstants.MIME_PDF); } @@ -72,6 +75,7 @@ * Tests IF document handler mimicking with PostScript output. * @throws Exception if an error occurs */ + @Test public void testMimickingPS() throws Exception { doTestMimicking(MimeConstants.MIME_POSTSCRIPT); } @@ -80,6 +84,7 @@ * Tests IF document handler mimicking with TIFF output. * @throws Exception if an error occurs */ + @Test public void testMimickingTIFF() throws Exception { doTestMimicking(MimeConstants.MIME_TIFF); }
diff --git a/test/java/org/apache/fop/intermediate/IFParserTestCase.java b/test/java/org/apache/fop/intermediate/IFParserTestCase.java index afdd757..08a96a5 100644 --- a/test/java/org/apache/fop/intermediate/IFParserTestCase.java +++ b/test/java/org/apache/fop/intermediate/IFParserTestCase.java
@@ -22,15 +22,21 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.util.Collection; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.stream.StreamResult; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import org.w3c.dom.Document; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.fonts.FontInfo; +import org.apache.fop.layoutengine.LayoutEngineTestUtils; import org.apache.fop.render.intermediate.IFContext; import org.apache.fop.render.intermediate.IFDocumentHandler; import org.apache.fop.render.intermediate.IFParser; @@ -39,9 +45,21 @@ /** * Tests the intermediate format parser. */ +@RunWith(Parameterized.class) public class IFParserTestCase extends AbstractIFTestCase { /** + * Gets the parameters for this test + * + * @return a collection of file arrays containing the test files + * @throws IOException if an error occurs when trying to read the test files + */ + @Parameters + public static Collection<File[]> getParameters() throws IOException { + return LayoutEngineTestUtils.getTestFiles(); + } + + /** * Constructor for the test suite that is used for each test file. * @param testFile the test file to run * @throws IOException if an I/O error occurs while loading the test case @@ -81,11 +99,16 @@ return (Document)domResult.getNode(); } - /** {@inheritDoc} */ @Override + @Test public void runTest() throws Exception { - testParserToIntermediateFormat(); - testParserToPDF(); + try { + testParserToIntermediateFormat(); + testParserToPDF(); + } catch (Exception e) { + org.apache.commons.logging.LogFactory.getLog(this.getClass()).error( + "Error on " + testFile.getName()); + throw e; + } } - }
diff --git a/test/java/org/apache/fop/intermediate/IFTestCase.java b/test/java/org/apache/fop/intermediate/IFTestCase.java index 30cb56b..a6ff171 100644 --- a/test/java/org/apache/fop/intermediate/IFTestCase.java +++ b/test/java/org/apache/fop/intermediate/IFTestCase.java
@@ -20,11 +20,20 @@ package org.apache.fop.intermediate; import java.io.File; +import java.io.FilenameFilter; import java.io.IOException; import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collection; import javax.xml.transform.Source; +import javax.xml.transform.TransformerFactory; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; @@ -33,9 +42,40 @@ /** * Test case for the IF output. */ +@RunWith(Parameterized.class) public class IFTestCase extends AbstractIFTestCase { - private final IFTester ifTester; + /** + * Gets the files for this test. + * + * @return a collection of file arrays containing the files to test + * @throws IOException if an error occurs when reading the test files + */ + @Parameters + public static Collection<File[]> getParameters() throws IOException { + File testDir = new File("test/intermediate"); + String[] tests = testDir.list(new FilenameFilter() { + + public boolean accept(File dir, String name) { + return name.endsWith(".xml"); + } + }); + + Collection<File[]> parameters = new ArrayList<File[]>(); + for (String test : tests) { + parameters.add(new File[] { new File(testDir, test) }); + } + return parameters; + } + + private static IFTester ifTester; + + @BeforeClass + public static void setupTestEnvironment() { + File backupDir = new File("build/test-results/intermediate"); + backupDir.mkdirs(); + ifTester = new IFTester(TransformerFactory.newInstance(), backupDir); + } /** * Creates a new test case. @@ -44,15 +84,14 @@ * @param ifTester the helper instance that will perform checks * @throws IOException if an I/O error occurs while loading the test case */ - public IFTestCase(File test, IFTester ifTester) throws IOException { + public IFTestCase(File test) throws IOException { super(test); - this.ifTester = ifTester; this.testDir = test.getParentFile(); } - /** {@inheritDoc} */ @Override - protected void runTest() throws Exception { + @Test + public void runTest() throws Exception { Element testRoot = testAssistant.getTestRoot(testFile); NodeList nodes = testRoot.getElementsByTagName("if-checks"); if (nodes.getLength() == 0) { @@ -61,7 +100,7 @@ Element ifChecks = (Element) nodes.item(0); Document doc = buildIntermediateDocument(testAssistant.getTestcase2FOStylesheet()); - ifTester.doIFChecks(getName(), ifChecks, doc); + ifTester.doIFChecks(testFile.getName(), ifChecks, doc); } @Override
diff --git a/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java b/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java index 824fee6..f960990 100644 --- a/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java +++ b/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java
@@ -19,49 +19,14 @@ package org.apache.fop.intermediate; -import java.io.File; -import java.io.FilenameFilter; -import java.io.IOException; - -import javax.xml.transform.TransformerFactory; - -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * A test suite for testing the Intermediate Format output. */ +@RunWith(Suite.class) +@SuiteClasses({ IFTestCase.class }) public final class IntermediateFormatTestSuite { - - private IntermediateFormatTestSuite() { - // This is a utility class - } - - /** - * Creates a suite of Intermediate Format tests. - * - * @return the test suite - * @throws IOException if an I/O error occurs while loading one of the tests - */ - public static Test suite() throws IOException { - - File backupDir = new File("build/test-results/intermediate"); - backupDir.mkdirs(); - - IFTester ifTester = new IFTester(TransformerFactory.newInstance(), backupDir); - - TestSuite suite = new TestSuite(); - File testDir = new File("test/intermediate"); - String[] tests = testDir.list(new FilenameFilter() { - - public boolean accept(File dir, String name) { - return name.endsWith(".xml"); - } - }); - for (String test : tests) { - File testFile = new File(testDir, test); - suite.addTest(new IFTestCase(testFile, ifTester)); - } - return suite; - } }
diff --git a/test/java/org/apache/fop/intermediate/LayoutIFTestSuite.java b/test/java/org/apache/fop/intermediate/LayoutIFTestSuite.java index 720556a..5d87df1 100644 --- a/test/java/org/apache/fop/intermediate/LayoutIFTestSuite.java +++ b/test/java/org/apache/fop/intermediate/LayoutIFTestSuite.java
@@ -19,46 +19,14 @@ package org.apache.fop.intermediate; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.fop.layoutengine.LayoutEngineTestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * JUnit test suite for the intermediate format */ +@RunWith(Suite.class) +@SuiteClasses({ IFParserTestCase.class }) public final class LayoutIFTestSuite { - - private LayoutIFTestSuite() { - // This is a utility class - } - - /** - * @return the test suite with all the tests (one for each XML file) - * @throws IOException in case of an I/O problem - */ - public static Test suite() throws IOException { - TestSuite suite = new TestSuite(); - - Collection files = LayoutEngineTestSuite.getTestFiles(); - - Iterator i = files.iterator(); - while (i.hasNext()) { - File f = (File)i.next(); - addIFTestCase(suite, f); - } - - return suite; - } - - private static void addIFTestCase(TestSuite suite, - final File f) throws IOException { - suite.addTest(new IFParserTestCase(f)); - } - }
diff --git a/test/java/org/apache/fop/layoutengine/LayoutEngineTestSuite.java b/test/java/org/apache/fop/layoutengine/LayoutEngineTestSuite.java index 3973746..00a6609 100644 --- a/test/java/org/apache/fop/layoutengine/LayoutEngineTestSuite.java +++ b/test/java/org/apache/fop/layoutengine/LayoutEngineTestSuite.java
@@ -19,196 +19,14 @@ package org.apache.fop.layoutengine; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.xml.transform.Result; -import javax.xml.transform.Source; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.sax.SAXResult; -import javax.xml.transform.stream.StreamSource; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.filefilter.AndFileFilter; -import org.apache.commons.io.filefilter.IOFileFilter; -import org.apache.commons.io.filefilter.NameFileFilter; -import org.apache.commons.io.filefilter.NotFileFilter; -import org.apache.commons.io.filefilter.PrefixFileFilter; -import org.apache.commons.io.filefilter.SuffixFileFilter; -import org.apache.commons.io.filefilter.TrueFileFilter; - -import org.apache.fop.DebugHelper; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * JUnit test suit for running layout engine test under JUnit control. */ -public final class LayoutEngineTestSuite { - - static { - DebugHelper.registerStandardElementListObservers(); - } - - private LayoutEngineTestSuite() { - // This is a utility class - } - - public static String[] readDisabledTestcases(File f) throws IOException { - List lines = new java.util.ArrayList(); - Source stylesheet = new StreamSource( - new File("test/layoutengine/disabled-testcase2filename.xsl")); - Source source = new StreamSource(f); - Result result = new SAXResult(new FilenameHandler(lines)); - try { - Transformer transformer = TransformerFactory.newInstance().newTransformer(stylesheet); - transformer.transform(source, result); - } catch (TransformerConfigurationException tce) { - throw new RuntimeException(tce.getMessage()); - } catch (TransformerException te) { - throw new RuntimeException(te.getMessage()); - } - return (String[])lines.toArray(new String[lines.size()]); - } - - private static class FilenameHandler extends DefaultHandler { - private StringBuffer buffer = new StringBuffer(128); - private boolean readingFilename = false; - private List filenames; - - public FilenameHandler(List filenames) { - this.filenames = filenames; - } - - public void startElement(String namespaceURI, String localName, String qName, - Attributes atts) throws SAXException { - if (qName != null && qName.equals("file")) { - buffer.setLength(0); - readingFilename = true; - } else { - throw new RuntimeException( - "Unexpected element while reading disabled testcase file names: " + qName); - } - } - - public void endElement(String namespaceURI, String localName, String qName) - throws SAXException { - if (qName != null && qName.equals("file")) { - readingFilename = false; - filenames.add(buffer.toString()); - } else { - throw new RuntimeException( - "Unexpected element while reading disabled testcase file names: " + qName); - } - } - - public void characters(char[] ch, int start, int length) throws SAXException { - if (readingFilename) { - buffer.append(ch, start, length); - } - } - } - - public static IOFileFilter decorateWithDisabledList(IOFileFilter filter) throws IOException { - String disabled = System.getProperty("fop.layoutengine.disabled"); - if (disabled != null && disabled.length() > 0) { - filter = new AndFileFilter(new NotFileFilter( - new NameFileFilter(readDisabledTestcases(new File(disabled)))), - filter); - } - return filter; - } - - /** - * @return a Collection of File instances containing all the test cases set up for processing. - * @throws IOException if there's a problem gathering the list of test files - */ - public static Collection getTestFiles() throws IOException { - File mainDir = new File("test/layoutengine"); - IOFileFilter filter; - String single = System.getProperty("fop.layoutengine.single"); - String startsWith = System.getProperty("fop.layoutengine.starts-with"); - if (single != null) { - filter = new NameFileFilter(single); - } else if (startsWith != null) { - filter = new PrefixFileFilter(startsWith); - filter = new AndFileFilter(filter, new SuffixFileFilter(".xml")); - filter = decorateWithDisabledList(filter); - } else { - filter = new SuffixFileFilter(".xml"); - filter = decorateWithDisabledList(filter); - } - String testset = System.getProperty("fop.layoutengine.testset"); - if (testset == null) { - testset = "standard"; - } - Collection files = FileUtils.listFiles(new File(mainDir, testset + "-testcases"), - filter, TrueFileFilter.INSTANCE); - String privateTests = System.getProperty("fop.layoutengine.private"); - if ("true".equalsIgnoreCase(privateTests)) { - Collection privateFiles = FileUtils.listFiles( - new File(mainDir, "private-testcases"), - filter, TrueFileFilter.INSTANCE); - files.addAll(privateFiles); - } - return files; - } - - /** - * @return the test suite with all the tests (one for each XML file) - * @throws IOException in case of an I/O problem - */ - public static Test suite() throws IOException { - TestSuite suite = new TestSuite(); - - File backupDir = new File("build/test-results/layoutengine"); - backupDir.mkdirs(); - - Collection files = getTestFiles(); - - final LayoutEngineTester tester = new LayoutEngineTester(backupDir); - Iterator i = files.iterator(); - while (i.hasNext()) { - File f = (File)i.next(); - suite.addTest(new LayoutEngineTestCase(f, tester)); - } - - return suite; - } - - private static class LayoutEngineTestCase extends TestCase { - - private final File testFile; - - private final LayoutEngineTester tester; - - LayoutEngineTestCase(File testFile, LayoutEngineTester tester) { - super(testFile.getName()); - this.testFile = testFile; - this.tester = tester; - } - - @Override - protected void runTest() throws Throwable { - try { - tester.runTest(testFile); - } catch (Exception e) { - org.apache.commons.logging.LogFactory.getLog( - this.getClass()).error("Error on " + getName()); - throw e; - } - } - } +@RunWith(Suite.class) +@SuiteClasses({ LayoutEngineTester.class }) +public class LayoutEngineTestSuite { }
diff --git a/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java b/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java new file mode 100644 index 0000000..6beda1f --- /dev/null +++ b/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java
@@ -0,0 +1,165 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.layoutengine; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamSource; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.filefilter.AndFileFilter; +import org.apache.commons.io.filefilter.IOFileFilter; +import org.apache.commons.io.filefilter.NameFileFilter; +import org.apache.commons.io.filefilter.NotFileFilter; +import org.apache.commons.io.filefilter.PrefixFileFilter; +import org.apache.commons.io.filefilter.SuffixFileFilter; +import org.apache.commons.io.filefilter.TrueFileFilter; + +/** + * Utility class for layout engine tests. + */ +public final class LayoutEngineTestUtils { + + private LayoutEngineTestUtils() { + } + + private static class FilenameHandler extends DefaultHandler { + private StringBuffer buffer = new StringBuffer(128); + private boolean readingFilename = false; + private List filenames; + + public FilenameHandler(List filenames) { + this.filenames = filenames; + } + + public void startElement(String namespaceURI, String localName, String qName, + Attributes atts) throws SAXException { + if (qName != null && qName.equals("file")) { + buffer.setLength(0); + readingFilename = true; + } else { + throw new RuntimeException( + "Unexpected element while reading disabled testcase file names: " + qName); + } + } + + public void endElement(String namespaceURI, String localName, String qName) + throws SAXException { + if (qName != null && qName.equals("file")) { + readingFilename = false; + filenames.add(buffer.toString()); + } else { + throw new RuntimeException( + "Unexpected element while reading disabled testcase file names: " + qName); + } + } + + public void characters(char[] ch, int start, int length) throws SAXException { + if (readingFilename) { + buffer.append(ch, start, length); + } + } + } + + public static IOFileFilter decorateWithDisabledList(IOFileFilter filter) throws IOException { + String disabled = System.getProperty("fop.layoutengine.disabled"); + if (disabled != null && disabled.length() > 0) { + filter = new AndFileFilter(new NotFileFilter( + new NameFileFilter(LayoutEngineTestUtils.readDisabledTestcases(new File( + disabled)))), + filter); + } + return filter; + } + + public static String[] readDisabledTestcases(File f) throws IOException { + List lines = new java.util.ArrayList(); + Source stylesheet = new StreamSource( + new File("test/layoutengine/disabled-testcase2filename.xsl")); + Source source = new StreamSource(f); + Result result = new SAXResult(new FilenameHandler(lines)); + try { + Transformer transformer = TransformerFactory.newInstance().newTransformer(stylesheet); + transformer.transform(source, result); + } catch (TransformerConfigurationException tce) { + throw new RuntimeException(tce.getMessage()); + } catch (TransformerException te) { + throw new RuntimeException(te.getMessage()); + } + return (String[]) lines.toArray(new String[lines.size()]); + } + + /** + * @return a Collection of File instances containing all the test cases set up for processing. + * @throws IOException if there's a problem gathering the list of test files + */ + public static Collection<File[]> getTestFiles() throws IOException { + File mainDir = new File("test/layoutengine"); + IOFileFilter filter; + String single = System.getProperty("fop.layoutengine.single"); + String startsWith = System.getProperty("fop.layoutengine.starts-with"); + if (single != null) { + filter = new NameFileFilter(single); + } else if (startsWith != null) { + filter = new PrefixFileFilter(startsWith); + filter = new AndFileFilter(filter, new SuffixFileFilter(".xml")); + filter = decorateWithDisabledList(filter); + } else { + filter = new SuffixFileFilter(".xml"); + filter = decorateWithDisabledList(filter); + } + String testset = System.getProperty("fop.layoutengine.testset"); + if (testset == null) { + testset = "standard"; + } + Collection<File> files = FileUtils.listFiles(new File(mainDir, testset + "-testcases"), + filter, TrueFileFilter.INSTANCE); + String privateTests = System.getProperty("fop.layoutengine.private"); + if ("true".equalsIgnoreCase(privateTests)) { + Collection privateFiles = FileUtils.listFiles( + new File(mainDir, "private-testcases"), + filter, TrueFileFilter.INSTANCE); + files.addAll(privateFiles); + } + + Collection<File[]> parametersForJUnit4 = new ArrayList<File[]>(); + for (File f : files) { + parametersForJUnit4.add(new File[] { f }); + } + + return parametersForJUnit4; + } + +}
diff --git a/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java b/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java index 51c05a9..867602c 100644 --- a/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java +++ b/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java
@@ -21,6 +21,7 @@ import java.io.File; import java.io.IOException; +import java.util.Collection; import java.util.List; import javax.xml.parsers.ParserConfigurationException; @@ -33,12 +34,7 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.sax.TransformerHandler; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.xml.sax.ContentHandler; -import org.xml.sax.SAXException; - +import org.apache.fop.DebugHelper; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; import org.apache.fop.apps.FopFactory; @@ -57,41 +53,74 @@ import org.apache.fop.render.xml.XMLRenderer; import org.apache.fop.util.ConsoleEventListenerForTests; import org.apache.fop.util.DelegatingContentHandler; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXException; /** * Class for testing the FOP's layout engine using testcases specified in XML * files. */ +@RunWith(Parameterized.class) public class LayoutEngineTester { + private static File areaTreeBackupDir; + /** + * Sets up the class, this is invoked only once. + */ + @BeforeClass + public static void makeDirAndRegisterDebugHelper() { + DebugHelper.registerStandardElementListObservers(); + areaTreeBackupDir = new File("build/test-results/layoutengine"); + areaTreeBackupDir.mkdirs(); + } + + /** + * Creates the parameters for this test. + * + * @return the list of file arrays populated with test files + * @throws IOException if an I/O error occurs while reading the test file + */ + @Parameters + public static Collection<File[]> getParameters() throws IOException { + return LayoutEngineTestUtils.getTestFiles(); + } private TestAssistant testAssistant = new TestAssistant(); private LayoutEngineChecksFactory layoutEngineChecksFactory = new LayoutEngineChecksFactory(); - private File areaTreeBackupDir; + private IFTester ifTester; + private File testFile; private TransformerFactory tfactory = TransformerFactory.newInstance(); /** * Constructs a new instance. - * @param areaTreeBackupDir Optional directory that receives the generated - * area tree XML files. May be null. + * + * @param testFile the test file */ - public LayoutEngineTester(File areaTreeBackupDir) { - this.areaTreeBackupDir = areaTreeBackupDir; + public LayoutEngineTester(File testFile) { this.ifTester = new IFTester(tfactory, areaTreeBackupDir); + this.testFile = testFile; } /** * Runs a single layout engine test case. - * @param testFile Test case to run * @throws TransformerException In case of an XSLT/JAXP problem * @throws IOException In case of an I/O problem * @throws SAXException In case of a problem during SAX processing * @throws ParserConfigurationException In case of a problem with the XML parser setup */ - public void runTest(File testFile) - throws TransformerException, SAXException, IOException, ParserConfigurationException { + @Test + public void runTest() throws TransformerException, SAXException, IOException, + ParserConfigurationException { DOMResult domres = new DOMResult();
diff --git a/test/java/org/apache/fop/layoutengine/ResultCheck.java b/test/java/org/apache/fop/layoutengine/ResultCheck.java index ce95c50..3b3a9cd 100644 --- a/test/java/org/apache/fop/layoutengine/ResultCheck.java +++ b/test/java/org/apache/fop/layoutengine/ResultCheck.java
@@ -40,9 +40,7 @@ this.property = node.getAttributes().getNamedItem("property").getNodeValue(); } - /* (non-Javadoc) - * @see LayoutEngineCheck#check(LayoutResult) - */ + /** {@inheritDoc} */ public void check(LayoutResult result) { FormattingResults results = result.getResults(); String actual; @@ -59,7 +57,7 @@ } - /** @see java.lang.Object#toString() */ + @Override public String toString() { return "Property: " + property; }
diff --git a/test/java/org/apache/fop/pdf/FileIDGeneratorTestCase.java b/test/java/org/apache/fop/pdf/FileIDGeneratorTestCase.java index 3e96177..a9d7bf4 100644 --- a/test/java/org/apache/fop/pdf/FileIDGeneratorTestCase.java +++ b/test/java/org/apache/fop/pdf/FileIDGeneratorTestCase.java
@@ -19,41 +19,57 @@ package org.apache.fop.pdf; -import java.util.Arrays; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; /** * Tests the {@link FileIDGenerator} class. */ -public abstract class FileIDGeneratorTestCase extends TestCase { - - /** - * Returns a suite containing all the {@link FileIDGenerator} test cases. - * - * @return the test suite - */ - public static final Test suite() { - TestSuite suite = new TestSuite(new Class[] { - RandomFileIDGeneratorTestCase.class, - DigestFileIDGeneratorTestCase.class }, - FileIDGeneratorTestCase.class.getName()); - return suite; - } +@RunWith(Parameterized.class) +public class FileIDGeneratorTestCase { /** The generator under test. */ protected FileIDGenerator fileIDGenerator; + private TestGetter initializer; + + @Parameters + public static Collection<TestGetter[]> getParameters() { + ArrayList<TestGetter[]> params = new ArrayList<TestGetter[]>(); + params.add(new TestGetter[] { new RandomFileIDGeneratorTest() }); + params.add(new TestGetter[] { new DigestFileIDGeneratorTest() }); + return params; + } + + public FileIDGeneratorTestCase(TestGetter initializer) { + this.initializer = initializer; + } + + @Before + public void setUp() throws Exception { + fileIDGenerator = initializer.getSut(); + } /** Tests that the getOriginalFileID method generates valid output. */ + @Test public void testOriginal() { byte[] fileID = fileIDGenerator.getOriginalFileID(); fileIDMustBeValid(fileID); } /** Tests that the getUpdatedFileID method generates valid output. */ + @Test public void testUpdated() { byte[] fileID = fileIDGenerator.getUpdatedFileID(); fileIDMustBeValid(fileID); @@ -65,6 +81,7 @@ } /** Tests that multiple calls to getOriginalFileID method always return the same value. */ + @Test public void testOriginalMultipleCalls() { byte[] fileID1 = fileIDGenerator.getUpdatedFileID(); byte[] fileID2 = fileIDGenerator.getUpdatedFileID(); @@ -72,20 +89,24 @@ } /** Tests that getUpdatedFileID returns the same value as getOriginalFileID. */ + @Test public void testUpdateEqualsOriginal() { byte[] originalFileID = fileIDGenerator.getOriginalFileID(); byte[] updatedFileID = fileIDGenerator.getUpdatedFileID(); assertTrue(Arrays.equals(originalFileID, updatedFileID)); } + private static interface TestGetter { + FileIDGenerator getSut() throws Exception; + } + /** * Tests the random file ID generator. */ - public static class RandomFileIDGeneratorTestCase extends FileIDGeneratorTestCase { + private static class RandomFileIDGeneratorTest implements TestGetter { - @Override - protected void setUp() throws Exception { - fileIDGenerator = FileIDGenerator.getRandomFileIDGenerator(); + public FileIDGenerator getSut() throws Exception { + return FileIDGenerator.getRandomFileIDGenerator(); } } @@ -93,11 +114,10 @@ /** * Tests the file ID generator based on an MD5 digest. */ - public static class DigestFileIDGeneratorTestCase extends FileIDGeneratorTestCase { + private static class DigestFileIDGeneratorTest implements TestGetter { - @Override - protected void setUp() throws Exception { - fileIDGenerator = FileIDGenerator.getDigestFileIDGenerator( + public FileIDGenerator getSut() throws Exception { + return FileIDGenerator.getDigestFileIDGenerator( new PDFDocument("Apache FOP")); }
diff --git a/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java b/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java index c850181..235db70 100644 --- a/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java +++ b/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java
@@ -19,6 +19,9 @@ package org.apache.fop.pdf; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -26,12 +29,12 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests the {@link PDFEncryptionJCE} class. */ -public class PDFEncryptionJCETestCase extends TestCase { +public class PDFEncryptionJCETestCase { private EncryptionTest test; @@ -271,12 +274,14 @@ } } + @Test public final void testMake() { PDFEncryption testEncryptionObj = createEncryptionObject(new PDFEncryptionParams()); assertTrue(testEncryptionObj instanceof PDFEncryptionJCE); assertEquals(1, ((PDFEncryptionJCE) testEncryptionObj).getObjectNumber()); } + @Test public void testBasic() throws IOException { test = new EncryptionTest(); test.setData(0x00).setEncryptedData(0x56); @@ -292,6 +297,7 @@ runEncryptionTests(); } + @Test public void test128bit() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setVersion(2) @@ -306,6 +312,7 @@ runEncryptionTests(); } + @Test public void testDisableRev2Permissions() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setPermissions(-64) @@ -320,6 +327,7 @@ runEncryptionTests(); } + @Test public void testDisableRev3Permissions() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setVersion(2) @@ -337,6 +345,7 @@ runEncryptionTests(); } + @Test public void test128bitDisableSomePermissions() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setVersion(2) @@ -355,6 +364,7 @@ runEncryptionTests(); } + @Test public void testDifferentPasswords() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setOwnerEntry("D11C233C65E9DC872E858ABBD8B62198771167ADCE7AB8DC7AE0A1A7E21A1E25") @@ -367,6 +377,7 @@ runEncryptionTests(); } + @Test public void testNoOwnerPassword() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setOwnerEntry("5163AAF3EE74C76D7C223593A84C8702FEA8AA4493E4933FF5B5A5BBB20AE4BB") @@ -379,6 +390,7 @@ runEncryptionTests(); } + @Test public void test128bitDisableSomePermissionsDifferentPasswords() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setVersion(2) @@ -399,6 +411,7 @@ runEncryptionTests(); } + @Test public void test128bitNoPermissionNoOwnerPassword() throws IOException { EncryptionDictionaryTester encryptionDictionaryTester = new EncryptionDictionaryTester() .setVersion(2)
diff --git a/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java b/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java index d81eb22..4a570e7 100644 --- a/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java +++ b/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java
@@ -19,20 +19,22 @@ package org.apache.fop.pdf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; import org.apache.fop.fonts.CIDSubset; import org.apache.fop.fonts.MultiByteFont; +import org.junit.Test; /** * Test case for {@link PDFFactory}. */ -public class PDFFactoryTestCase extends TestCase { +public class PDFFactoryTestCase { /** * This tests that when a font is subset embedded in a PDF, the font name is prefixed with a * pseudo-random tag as per the PDF spec. */ + @Test public void testSubsetFontNamePrefix() { class MockedFont extends MultiByteFont { @Override
diff --git a/test/java/org/apache/fop/pdf/PDFObjectTestCase.java b/test/java/org/apache/fop/pdf/PDFObjectTestCase.java index d41a0f0..2e1f452 100644 --- a/test/java/org/apache/fop/pdf/PDFObjectTestCase.java +++ b/test/java/org/apache/fop/pdf/PDFObjectTestCase.java
@@ -19,22 +19,25 @@ package org.apache.fop.pdf; +import static org.junit.Assert.assertEquals; + import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.TimeZone; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests the PDFObject class. */ -public class PDFObjectTestCase extends TestCase { +public class PDFObjectTestCase { /** * Tests date/time formatting in PDFObject. * @throws Exception if an error occurs */ + @Test public void testDateFormatting() throws Exception { Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.ENGLISH); cal.set(2008, Calendar.FEBRUARY, 07, 15, 11, 07); @@ -60,6 +63,7 @@ * Tests PDF object references. * @throws Exception if an error occurs */ + @Test public void testReference() throws Exception { PDFDictionary dict = new PDFDictionary(); dict.setObjectNumber(7);
diff --git a/test/java/org/apache/fop/render/AbstractRenderingTestCase.java b/test/java/org/apache/fop/render/AbstractRenderingTestCase.java index daaa94e..9eecfb1 100644 --- a/test/java/org/apache/fop/render/AbstractRenderingTestCase.java +++ b/test/java/org/apache/fop/render/AbstractRenderingTestCase.java
@@ -31,11 +31,8 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamSource; -import junit.framework.TestCase; - import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; - import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; import org.apache.fop.apps.FopFactory; @@ -44,7 +41,7 @@ /** * Abstract base class for rendering (output) verification tests. */ -public abstract class AbstractRenderingTestCase extends TestCase { +public abstract class AbstractRenderingTestCase { private static final Map<String, String> MIME_MAP = new java.util.HashMap<String, String>();
diff --git a/test/java/org/apache/fop/render/RendererFactoryTest.java b/test/java/org/apache/fop/render/RendererFactoryTest.java index 6b8e8f5..4f1c509 100644 --- a/test/java/org/apache/fop/render/RendererFactoryTest.java +++ b/test/java/org/apache/fop/render/RendererFactoryTest.java
@@ -19,10 +19,10 @@ package org.apache.fop.render; -import junit.framework.TestCase; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import org.apache.commons.io.output.NullOutputStream; - import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FopFactory; @@ -34,12 +34,14 @@ import org.apache.fop.render.intermediate.IFRenderer; import org.apache.fop.render.pdf.PDFDocumentHandler; import org.apache.fop.render.rtf.RTFHandler; +import org.junit.Test; /** * Tests for {@link RendererFactory}. */ -public class RendererFactoryTest extends TestCase { +public class RendererFactoryTest { + @Test public void testDocumentHandlerLevel() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); RendererFactory factory = fopFactory.getRendererFactory(); @@ -67,6 +69,7 @@ } } + @Test public void testRendererLevel() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); RendererFactory factory = fopFactory.getRendererFactory(); @@ -98,6 +101,7 @@ } } + @Test public void testFOEventHandlerLevel() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); RendererFactory factory = fopFactory.getRendererFactory();
diff --git a/test/java/org/apache/fop/render/afp/AFPTestSuite.java b/test/java/org/apache/fop/render/afp/AFPTestSuite.java index 3f12746..16b6651 100644 --- a/test/java/org/apache/fop/render/afp/AFPTestSuite.java +++ b/test/java/org/apache/fop/render/afp/AFPTestSuite.java
@@ -19,24 +19,14 @@ package org.apache.fop.render.afp; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for FOP's AFP output. */ +@RunWith(Suite.class) +@SuiteClasses({ NoOperationTestCase.class }) public class AFPTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Test suite for AFP output"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(NoOperationTestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/render/afp/NoOperationTestCase.java b/test/java/org/apache/fop/render/afp/NoOperationTestCase.java index 56e4551..eadc14f 100644 --- a/test/java/org/apache/fop/render/afp/NoOperationTestCase.java +++ b/test/java/org/apache/fop/render/afp/NoOperationTestCase.java
@@ -19,19 +19,20 @@ package org.apache.fop.render.afp; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; -import junit.framework.Assert; - import org.apache.commons.io.IOUtils; - import org.apache.fop.afp.AFPConstants; import org.apache.fop.afp.parser.MODCAParser; import org.apache.fop.afp.parser.UnparsedStructuredField; import org.apache.fop.apps.FOUserAgent; +import org.junit.Test; /** * Tests generation of afp:no-operation (NOPs). @@ -42,6 +43,7 @@ * Tests afp:no-operation. * @throws Exception if an error occurs */ + @Test public void testNoOperation() throws Exception { FOUserAgent ua = fopFactory.newFOUserAgent(); File outputFile = renderFile(ua, "nops.fo", ""); @@ -116,7 +118,7 @@ return field; } } while (field != null); - Assert.fail("Structured field not found: " + Integer.toHexString(typeID)); + fail("Structured field not found: " + Integer.toHexString(typeID)); return null; }
diff --git a/test/java/org/apache/fop/render/extensions/prepress/PageBoundariesTest.java b/test/java/org/apache/fop/render/extensions/prepress/PageBoundariesTest.java index 5cd23c1..7ec515e 100644 --- a/test/java/org/apache/fop/render/extensions/prepress/PageBoundariesTest.java +++ b/test/java/org/apache/fop/render/extensions/prepress/PageBoundariesTest.java
@@ -19,15 +19,19 @@ package org.apache.fop.render.extensions.prepress; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + import java.awt.Dimension; import java.awt.Rectangle; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests for the fox:bleed, fox:crop-offset, fox:crop-box extension properties. */ -public class PageBoundariesTest extends TestCase { +public class PageBoundariesTest { private static final Dimension TEST_AREA_SIZE = new Dimension(20000, 15000); @@ -37,22 +41,8 @@ private static final String CROP_OFFSET = "8pt"; - /** - * Default constructor. - */ - public PageBoundariesTest() { - } - - /** - * Creates a test case with the given name. - * - * @param name name for the test case - */ - public PageBoundariesTest(String name) { - super(name); - } - /** Test for page boundaries. */ + @Test public void testBoundaries1() { PageBoundaries boundaries = new PageBoundaries(TEST_AREA_SIZE, BLEED, CROP_OFFSET, null); assertEquals(TEST_AREA, boundaries.getTrimBox()); @@ -73,6 +63,7 @@ } /** Test for page boundaries. */ + @Test public void testBoundaries2() { PageBoundaries boundaries = new PageBoundaries( TEST_AREA_SIZE, BLEED, null, null); @@ -86,6 +77,7 @@ } /** Two values for the properties. */ + @Test public void testBoundaries2Values() { PageBoundaries boundaries = new PageBoundaries( TEST_AREA_SIZE, "5pt 10pt", "6pt \t 12pt", null); @@ -103,6 +95,7 @@ } /** Three values for the properties. */ + @Test public void testBoundaries3Values() { PageBoundaries boundaries = new PageBoundaries( TEST_AREA_SIZE, "5pt 10pt 7pt", "6pt \t 12pt 14pt", null); @@ -120,6 +113,7 @@ } /** Four values for the properties. */ + @Test public void testBoundaries4Values() { PageBoundaries boundaries = new PageBoundaries( TEST_AREA_SIZE, "5pt 6pt 7pt 8pt", "9pt 10pt 11pt 12pt", null); @@ -137,6 +131,7 @@ } /** Test for the different values of crop-box. */ + @Test public void testCropBox() { PageBoundaries boundaries = new PageBoundaries(TEST_AREA_SIZE, BLEED, CROP_OFFSET, null); assertEquals(boundaries.getMediaBox(), boundaries.getCropBox()); @@ -155,6 +150,7 @@ } /** Test for default values returned when properties are null. */ + @Test public void testBoundariesNull() { PageBoundaries b = new PageBoundaries(TEST_AREA_SIZE, null, null, null); @@ -165,6 +161,7 @@ } /** Units must be specified. */ + @Test public void testBoundariesFail() { try { new PageBoundaries(TEST_AREA_SIZE, "0", null, null);
diff --git a/test/java/org/apache/fop/render/extensions/prepress/PageScaleTest.java b/test/java/org/apache/fop/render/extensions/prepress/PageScaleTest.java index cbf6f52..0908e86 100644 --- a/test/java/org/apache/fop/render/extensions/prepress/PageScaleTest.java +++ b/test/java/org/apache/fop/render/extensions/prepress/PageScaleTest.java
@@ -19,32 +19,21 @@ package org.apache.fop.render.extensions.prepress; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; + import java.awt.geom.Point2D; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests for the fox:scale extension property. */ -public class PageScaleTest extends TestCase { - - /** - * Default constructor. - */ - public PageScaleTest() { - super(); - } - - /** - * Creates a test case with the given name. - * - * @param name name for the test case - */ - public PageScaleTest(String name) { - super(name); - } +public class PageScaleTest { /** 1 value is used for both x and y. */ + @Test public void testScale1() { Point2D res = PageScale.getScale(".5"); assertEquals(0.5, res.getX(), 0.0); @@ -52,6 +41,7 @@ } /** Two values, used resp. for x and y. */ + @Test public void testScale2() { Point2D res = PageScale.getScale("1. \t \n 1.2"); assertEquals(1.0, res.getX(), 0.0); @@ -59,6 +49,7 @@ } /** Scale must not contain units. */ + @Test public void testScaleFail() { try { PageScale.getScale("0.5mm 0.5cm"); @@ -69,6 +60,7 @@ } /** @{code null} is returned when scale is unspecified. */ + @Test public void testScaleNull() { Point2D res = PageScale.getScale(null); assertNull("Result should be null", res);
diff --git a/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java b/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java index 7aaf61e..256f788 100644 --- a/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java +++ b/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java
@@ -28,16 +28,14 @@ import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamSource; -import org.xml.sax.SAXException; - import org.apache.commons.io.FileUtils; import org.apache.commons.io.output.ByteArrayOutputStream; - import org.apache.fop.AbstractFOPTestCase; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.Fop; import org.apache.fop.apps.FopFactory; import org.apache.fop.apps.MimeConstants; +import org.xml.sax.SAXException; /** * Base class for automated tests that create PDF files @@ -52,10 +50,8 @@ /** * Main constructor - * @param name the name of the test case */ - protected BasePDFTestCase(String name) { - super(name); + protected BasePDFTestCase() { init(); }
diff --git a/test/java/org/apache/fop/render/pdf/PDFAConformanceTestCase.java b/test/java/org/apache/fop/render/pdf/PDFAConformanceTestCase.java index 6585a0c..67c4df2 100644 --- a/test/java/org/apache/fop/render/pdf/PDFAConformanceTestCase.java +++ b/test/java/org/apache/fop/render/pdf/PDFAConformanceTestCase.java
@@ -19,10 +19,13 @@ package org.apache.fop.render.pdf; +import static org.junit.Assert.fail; + import java.io.File; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.pdf.PDFConformanceException; +import org.junit.Test; /** * Tests PDF/A-1 functionality. @@ -32,13 +35,6 @@ private File foBaseDir = new File("test/xml/pdf-a"); private boolean dumpPDF = Boolean.getBoolean("PDFAConformanceTestCase.dumpPDF"); - /** - * Main constructor - * @param name the name of the test case - */ - public PDFAConformanceTestCase(String name) { - super(name); - } /** create an FOUserAgent for our tests * @return an initialized FOUserAgent @@ -53,6 +49,7 @@ * Test exception when PDF/A-1 is enabled and everything is as it should. * @throws Exception if the test fails */ + @Test public void testAllOk() throws Exception { File foFile = new File(foBaseDir, "minimal-pdf-a.fo"); convertFO(foFile, getUserAgent(), dumpPDF); @@ -62,6 +59,7 @@ * Test exception when PDF/A-1 is enabled together with encryption. * @throws Exception if the test fails */ + @Test public void testNoEncryption() throws Exception { final FOUserAgent ua = getUserAgent(); ua.getRendererOptions().put("owner-password", "mypassword"); //To enabled encryption @@ -78,6 +76,7 @@ * Test exception when PDF/A-1 is enabled and a font is used which is not embedded. * @throws Exception if the test fails */ + @Test public void testFontNotEmbedded() throws Exception { File foFile = new File(foBaseDir, "base14-font.fo"); try { @@ -92,6 +91,7 @@ * Test exception when PDF/A-1 is enabled and images. * @throws Exception if the test fails */ + @Test public void testImages() throws Exception { File foFile = new File(foBaseDir, "with-rgb-images.fo"); convertFO(foFile, getUserAgent(), dumpPDF);
diff --git a/test/java/org/apache/fop/render/pdf/PDFAMetadataTestCase.java b/test/java/org/apache/fop/render/pdf/PDFAMetadataTestCase.java index 886a2b9..1606bf0 100644 --- a/test/java/org/apache/fop/render/pdf/PDFAMetadataTestCase.java +++ b/test/java/org/apache/fop/render/pdf/PDFAMetadataTestCase.java
@@ -19,6 +19,9 @@ package org.apache.fop.render.pdf; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + import java.util.Calendar; import java.util.TimeZone; @@ -32,14 +35,14 @@ import org.apache.xmlgraphics.xmp.schemas.XMPBasicSchema; import org.apache.xmlgraphics.xmp.schemas.pdf.AdobePDFAdapter; import org.apache.xmlgraphics.xmp.schemas.pdf.AdobePDFSchema; - -import junit.framework.TestCase; +import org.junit.Test; /** * Test case for PDF/A metadata handling. */ -public class PDFAMetadataTestCase extends TestCase { +public class PDFAMetadataTestCase { + @Test public void testInfoUpdate() throws Exception { Metadata meta = new Metadata(); DublinCoreAdapter dc = DublinCoreSchema.getAdapter(meta); @@ -76,6 +79,7 @@ assertEquals(cal2.getTime(), info.getModDate()); } + @Test public void testXMPUpdate() throws Exception { PDFDocument doc = new PDFDocument("SuperFOP"); PDFInfo info = doc.getInfo();
diff --git a/test/java/org/apache/fop/render/pdf/PDFCMapTestCase.java b/test/java/org/apache/fop/render/pdf/PDFCMapTestCase.java index bd5c8ad..fee2c07 100644 --- a/test/java/org/apache/fop/render/pdf/PDFCMapTestCase.java +++ b/test/java/org/apache/fop/render/pdf/PDFCMapTestCase.java
@@ -19,16 +19,18 @@ package org.apache.fop.render.pdf; +import static org.junit.Assert.assertEquals; + import java.io.StringWriter; -import junit.framework.TestCase; - import org.apache.fop.pdf.CMapBuilder; +import org.junit.Test; /** Simple sanity test of the PDFCmap class */ -public class PDFCMapTestCase extends TestCase { +public class PDFCMapTestCase { private static final String EOL = "\n"; + @Test public void testPDFCMapFillInPDF() throws Exception { final String expected = "%!PS-Adobe-3.0 Resource-CMap" + EOL
diff --git a/test/java/org/apache/fop/render/pdf/PDFEncodingTestCase.java b/test/java/org/apache/fop/render/pdf/PDFEncodingTestCase.java index b3098b8..b385e55 100644 --- a/test/java/org/apache/fop/render/pdf/PDFEncodingTestCase.java +++ b/test/java/org/apache/fop/render/pdf/PDFEncodingTestCase.java
@@ -19,11 +19,16 @@ package org.apache.fop.render.pdf; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.io.File; import java.io.IOException; import java.util.StringTokenizer; import org.apache.fop.apps.FOUserAgent; +import org.junit.Ignore; +import org.junit.Test; /** Test that characters are correctly encoded in a generated PDF file */ public class PDFEncodingTestCase extends BasePDFTestCase { @@ -32,12 +37,6 @@ static final String INPUT_FILE = "test/xml/pdf-encoding/pdf-encoding-test.xconf"; static final String TEST_MARKER = "PDFE_TEST_MARK_"; - /** - * @param name the name of the test case - */ - public PDFEncodingTestCase(String name) { - super(name); - } /** * create an FOUserAgent for our tests @@ -57,6 +56,7 @@ * Test using a standard FOP font * @throws Exception checkstyle wants a comment here, even a silly one */ + @Test public void testPDFEncodingWithStandardFont() throws Exception { /* If the PDF encoding is correct, a text dump of the generated PDF file contains this (excerpts) @@ -82,7 +82,10 @@ * @throws Exception * checkstyle wants a comment here, even a silly one */ - public void DISABLEDtestPDFEncodingWithCustomFont() throws Exception { + @Ignore("This should be tested using PDFBox. If PDFBox can extract the text correctly," + + "everything is fine. The tests here are too unstable.") + @Test + public void testPDFEncodingWithCustomFont() throws Exception { /* If the PDF encoding is correct, a text dump of the generated PDF file contains this (excerpts) * ...Tm [(PDFE_TEST_MARK_2:) ( ) (This) ( ) (is) ...(acute:) ( ) (XX_\351_XX) ] TJ
diff --git a/test/java/org/apache/fop/render/pdf/PDFRendererConfiguratorTestCase.java b/test/java/org/apache/fop/render/pdf/PDFRendererConfiguratorTestCase.java index 01889e4..143f53c 100644 --- a/test/java/org/apache/fop/render/pdf/PDFRendererConfiguratorTestCase.java +++ b/test/java/org/apache/fop/render/pdf/PDFRendererConfiguratorTestCase.java
@@ -19,10 +19,11 @@ package org.apache.fop.render.pdf; -import java.io.File; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import java.io.File; import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; @@ -30,11 +31,12 @@ import org.apache.fop.events.Event; import org.apache.fop.events.EventListener; import org.apache.fop.pdf.PDFEncryptionParams; +import org.junit.Test; /** * Tests that encryption length is properly set up. */ -public class PDFRendererConfiguratorTestCase extends TestCase { +public class PDFRendererConfiguratorTestCase { private FOUserAgent foUserAgent; @@ -67,6 +69,7 @@ * * @throws Exception if an error occurs */ + @Test public void testRoundUp() throws Exception { runTest("roundUp", 55, 56); } @@ -76,6 +79,7 @@ * * @throws Exception if an error occurs */ + @Test public void testRoundDown() throws Exception { runTest("roundDown", 67, 64); } @@ -85,6 +89,7 @@ * * @throws Exception if an error occurs */ + @Test public void testBelow40() throws Exception { runTest("below40", 32, 40); } @@ -94,6 +99,7 @@ * * @throws Exception if an error occurs */ + @Test public void testAbove128() throws Exception { runTest("above128", 233, 128); } @@ -103,11 +109,12 @@ * * @throws Exception if an error occurs */ + @Test public void testCorrectValue() throws Exception { givenAConfigurationFile("correct", new EventListener() { public void processEvent(Event event) { - throw new AssertionFailedError("No event was expected"); + fail("No event was expected"); } }); whenCreatingAndConfiguringDocumentHandler();
diff --git a/test/java/org/apache/fop/render/pdf/PDFsRGBSettingsTestCase.java b/test/java/org/apache/fop/render/pdf/PDFsRGBSettingsTestCase.java index 49b004e..6818537 100644 --- a/test/java/org/apache/fop/render/pdf/PDFsRGBSettingsTestCase.java +++ b/test/java/org/apache/fop/render/pdf/PDFsRGBSettingsTestCase.java
@@ -19,9 +19,12 @@ package org.apache.fop.render.pdf; +import static org.junit.Assert.fail; + import java.io.File; import org.apache.fop.apps.FOUserAgent; +import org.junit.Test; /** * Tests the disables-srgb-colorspace setting. @@ -30,14 +33,6 @@ private File foBaseDir = new File("test/xml/pdf-a"); - /** - * Main constructor - * @param name name of the test case - */ - public PDFsRGBSettingsTestCase(String name) { - super(name); - } - private FOUserAgent getUserAgent(boolean enablePDFA) { final FOUserAgent a = fopFactory.newFOUserAgent(); if (enablePDFA) { @@ -51,6 +46,7 @@ * Verify that the PDFRenderer complains if PDF/A or PDF/X is used when sRGB is disabled. * @throws Exception if the test fails */ + @Test public void testPDFAWithDisabledSRGB() throws Exception { File foFile = new File(foBaseDir, "minimal-pdf-a.fo"); try {
diff --git a/test/java/org/apache/fop/render/pdf/RenderPDFTestSuite.java b/test/java/org/apache/fop/render/pdf/RenderPDFTestSuite.java index c9a17da..2279e4f 100644 --- a/test/java/org/apache/fop/render/pdf/RenderPDFTestSuite.java +++ b/test/java/org/apache/fop/render/pdf/RenderPDFTestSuite.java
@@ -19,27 +19,15 @@ package org.apache.fop.render.pdf; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * A test suite for org.apache.fop.render.pdf.* */ +@RunWith(Suite.class) +@SuiteClasses({ PDFRendererConfiguratorTestCase.class }) public final class RenderPDFTestSuite { - - private RenderPDFTestSuite() { } - - /** - * Creates the test suite. - * - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite(); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(PDFRendererConfiguratorTestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/render/ps/AbstractPostScriptTestCase.java b/test/java/org/apache/fop/render/ps/AbstractPostScriptTestCase.java index 30e4998..cdd1ee5 100644 --- a/test/java/org/apache/fop/render/ps/AbstractPostScriptTestCase.java +++ b/test/java/org/apache/fop/render/ps/AbstractPostScriptTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.render.ps; +import static org.junit.Assert.assertEquals; + import java.io.File; import java.io.IOException;
diff --git a/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java b/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java index c127d82..f4c3617 100644 --- a/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java +++ b/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java
@@ -18,13 +18,16 @@ /* $Id$ */ package org.apache.fop.render.ps; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; import java.io.InputStream; import org.apache.commons.io.IOUtils; - +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.render.intermediate.IFContext; import org.apache.xmlgraphics.ps.DSCConstants; import org.apache.xmlgraphics.ps.PSResource; import org.apache.xmlgraphics.ps.dsc.DSCException; @@ -33,9 +36,7 @@ import org.apache.xmlgraphics.ps.dsc.events.DSCCommentPages; import org.apache.xmlgraphics.ps.dsc.events.DSCCommentTitle; import org.apache.xmlgraphics.ps.dsc.events.DSCEvent; - -import org.apache.fop.apps.FOUserAgent; -import org.apache.fop.render.intermediate.IFContext; +import org.junit.Test; /** * Tests the image handling in PostScript output. @@ -46,6 +47,7 @@ * Tests JPEG handling. * @throws Exception if an error occurs */ + @Test public void testJPEGImageLevel3() throws Exception { innerTestJPEGImage(3); } @@ -54,6 +56,7 @@ * Tests JPEG handling. * @throws Exception if an error occurs */ + @Test public void testJPEGImageLevel2() throws Exception { innerTestJPEGImage(2); }
diff --git a/test/java/org/apache/fop/render/ps/PSTestSuite.java b/test/java/org/apache/fop/render/ps/PSTestSuite.java index 05ba2da..cf66d47 100644 --- a/test/java/org/apache/fop/render/ps/PSTestSuite.java +++ b/test/java/org/apache/fop/render/ps/PSTestSuite.java
@@ -19,25 +19,17 @@ package org.apache.fop.render.ps; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for FOP's PostScript output. */ +@RunWith(Suite.class) +@SuiteClasses({ + ImageHandlingTestCase.class, + ResourceOptimizationTestCase.class +}) public class PSTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Test suite for PostScript output"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(ImageHandlingTestCase.class)); - suite.addTest(new TestSuite(ResourceOptimizationTestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/render/ps/ResourceOptimizationTestCase.java b/test/java/org/apache/fop/render/ps/ResourceOptimizationTestCase.java index 327c865..91787ac 100644 --- a/test/java/org/apache/fop/render/ps/ResourceOptimizationTestCase.java +++ b/test/java/org/apache/fop/render/ps/ResourceOptimizationTestCase.java
@@ -19,6 +19,11 @@ package org.apache.fop.render.ps; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -27,7 +32,8 @@ import java.util.Set; import org.apache.commons.io.IOUtils; - +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.render.intermediate.IFContext; import org.apache.xmlgraphics.ps.DSCConstants; import org.apache.xmlgraphics.ps.PSResource; import org.apache.xmlgraphics.ps.dsc.DSCException; @@ -43,9 +49,7 @@ import org.apache.xmlgraphics.ps.dsc.events.DSCCommentIncludeResource; import org.apache.xmlgraphics.ps.dsc.events.DSCCommentPage; import org.apache.xmlgraphics.ps.dsc.events.DSCCommentPages; - -import org.apache.fop.apps.FOUserAgent; -import org.apache.fop.render.intermediate.IFContext; +import org.junit.Test; /** * Tests the PostScript resource optimization (selective de-duplication of @@ -57,6 +61,7 @@ * Tests resource optimization. * @throws Exception if an error occurs */ + @Test public void testResourceOptimization() throws Exception { FOUserAgent ua = fopFactory.newFOUserAgent(); PSDocumentHandler handler = new PSDocumentHandler();
diff --git a/test/java/org/apache/fop/render/rtf/Bug39607TestCase.java b/test/java/org/apache/fop/render/rtf/Bug39607TestCase.java index a7622bc..c5821ff 100644 --- a/test/java/org/apache/fop/render/rtf/Bug39607TestCase.java +++ b/test/java/org/apache/fop/render/rtf/Bug39607TestCase.java
@@ -27,18 +27,18 @@ import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfSection; import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfTable; import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfTableRow; - -import junit.framework.TestCase; +import org.junit.Test; /** * Test for http://issues.apache.org/bugzilla/show_bug.cgi?id=39607 */ -public class Bug39607TestCase extends TestCase { +public class Bug39607TestCase { /** * Test for the NPE describes in bug 39607 * @throws Exception If an error occurs */ + @Test public void testForNPE() throws Exception { StringWriter writer = new StringWriter(); RtfFile f = new RtfFile(writer);
diff --git a/test/java/org/apache/fop/render/rtf/RichTextFormatTestSuite.java b/test/java/org/apache/fop/render/rtf/RichTextFormatTestSuite.java index 5026043..d8296fc 100644 --- a/test/java/org/apache/fop/render/rtf/RichTextFormatTestSuite.java +++ b/test/java/org/apache/fop/render/rtf/RichTextFormatTestSuite.java
@@ -19,24 +19,14 @@ package org.apache.fop.render.rtf; -import junit.framework.Test; -import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; /** * Test suite for FOP's RTF library. */ +@RunWith(Suite.class) +@SuiteClasses({ Bug39607TestCase.class }) public class RichTextFormatTestSuite { - - /** - * Builds the test suite - * @return the test suite - */ - public static Test suite() { - TestSuite suite = new TestSuite( - "Test suite for RTF library"); - //$JUnit-BEGIN$ - suite.addTest(new TestSuite(Bug39607TestCase.class)); - //$JUnit-END$ - return suite; - } }
diff --git a/test/java/org/apache/fop/text/linebreak/LineBreakStatusTest.java b/test/java/org/apache/fop/text/linebreak/LineBreakStatusTest.java index e9b2ff9..97ac470 100644 --- a/test/java/org/apache/fop/text/linebreak/LineBreakStatusTest.java +++ b/test/java/org/apache/fop/text/linebreak/LineBreakStatusTest.java
@@ -19,14 +19,15 @@ package org.apache.fop.text.linebreak; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + /** * JUnit test case for the LineBreakStatus class */ -public class LineBreakStatusTest extends TestCase { +public class LineBreakStatusTest { /* * These symbols are used to indicate the break action returned @@ -37,27 +38,9 @@ private static final String BREAK_ACTION = "_%#@^!"; /** - * Creates the test with the given name. - * @param testName The name for this test. - */ - public LineBreakStatusTest(String testName) { - super(testName); - } - - /** - * Returns an TestSuite constructed from this class. - * @return the TestSuite - * @see junit.framework.TestSuite#TestSuite(class) - */ - public static Test suite() { - TestSuite suite = new TestSuite(LineBreakStatusTest.class); - - return suite; - } - - /** * Test of reset method, of class org.apache.commons.text.linebreak.LineBreakStatus. */ + @Test public void testReset() { System.out.println("testReset"); // TODO @@ -67,6 +50,7 @@ * Test of nextChar method, of class org.apache.commons.text.linebreak.LineBreakStatus. * Runs tests for most of the Line Breaking Properties defined in the Unicode standard. */ + @Test public void testNextChar() { System.out.println("testNextChar");
diff --git a/test/java/org/apache/fop/text/linebreak/LineBreakUtilsTest.java b/test/java/org/apache/fop/text/linebreak/LineBreakUtilsTest.java index bb6d209..9c5b0d8 100644 --- a/test/java/org/apache/fop/text/linebreak/LineBreakUtilsTest.java +++ b/test/java/org/apache/fop/text/linebreak/LineBreakUtilsTest.java
@@ -19,22 +19,18 @@ package org.apache.fop.text.linebreak; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; /** * TODO add javadoc * * */ -public class LineBreakUtilsTest extends TestCase { +public class LineBreakUtilsTest { - /** - * @param name - */ - public LineBreakUtilsTest(String name) { - super(name); - } - + @Test public void testLineBreakProperty() { assertEquals(LineBreakUtils.getLineBreakProperty('A'), LineBreakUtils.LINE_BREAK_PROPERTY_AL); assertEquals(LineBreakUtils.getLineBreakProperty('1'), LineBreakUtils.LINE_BREAK_PROPERTY_NU); @@ -44,6 +40,7 @@ assertEquals(LineBreakUtils.getLineBreakProperty('\u1F7E'), 0); } + @Test public void testLineBreakPair() { assertEquals( LineBreakUtils.getLineBreakPairProperty(
diff --git a/test/java/org/apache/fop/traits/BorderPropsTestCase.java b/test/java/org/apache/fop/traits/BorderPropsTestCase.java index 07e4cd6..2522786 100644 --- a/test/java/org/apache/fop/traits/BorderPropsTestCase.java +++ b/test/java/org/apache/fop/traits/BorderPropsTestCase.java
@@ -19,25 +19,27 @@ package org.apache.fop.traits; -import java.awt.Color; +import static org.junit.Assert.assertEquals; -import junit.framework.TestCase; +import java.awt.Color; import org.apache.xmlgraphics.java2d.color.ColorWithAlternatives; import org.apache.xmlgraphics.java2d.color.DeviceCMYKColorSpace; import org.apache.fop.fo.Constants; import org.apache.fop.util.ColorUtil; +import org.junit.Test; /** * Tests the BorderProps class. */ -public class BorderPropsTestCase extends TestCase { +public class BorderPropsTestCase { /** * Test serialization and deserialization to/from String. * @throws Exception if an error occurs */ + @Test public void testSerialization() throws Exception { Color col = new Color(1.0f, 1.0f, 0.5f, 1.0f); //Normalize: Avoid false alarms due to color conversion (rounding)
diff --git a/test/java/org/apache/fop/traits/MinOptMaxTest.java b/test/java/org/apache/fop/traits/MinOptMaxTest.java index 17f46b7..9e08a63 100644 --- a/test/java/org/apache/fop/traits/MinOptMaxTest.java +++ b/test/java/org/apache/fop/traits/MinOptMaxTest.java
@@ -19,20 +19,27 @@ package org.apache.fop.traits; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.junit.Test; /** * Tests the {@link MinOptMaxTest} class. */ -public class MinOptMaxTest extends TestCase { +public class MinOptMaxTest { /** * Tests that the constant <code>MinOptMax.ZERO</code> is really zero. */ + @Test public void testZero() { assertEquals(MinOptMax.getInstance(0), MinOptMax.ZERO); } + @Test public void testNewStiffMinOptMax() { MinOptMax value = MinOptMax.getInstance(1); assertTrue(value.isStiff()); @@ -41,6 +48,7 @@ assertEquals(1, value.getMax()); } + @Test public void testNewMinOptMax() { MinOptMax value = MinOptMax.getInstance(1, 2, 3); assertTrue(value.isElastic()); @@ -52,6 +60,7 @@ /** * Test that it is possible to create stiff instances with the normal factory method. */ + @Test public void testNewMinOptMaxStiff() { MinOptMax value = MinOptMax.getInstance(1, 1, 1); assertTrue(value.isStiff()); @@ -60,6 +69,7 @@ assertEquals(1, value.getMax()); } + @Test public void testNewMinOptMaxMinGreaterOpt() { try { MinOptMax.getInstance(1, 0, 2); @@ -69,6 +79,7 @@ } } + @Test public void testNewMinOptMaxMaxSmallerOpt() { try { MinOptMax.getInstance(0, 1, 0); @@ -78,18 +89,21 @@ } } + @Test public void testShrinkablility() { assertEquals(0, MinOptMax.getInstance(1).getShrink()); assertEquals(1, MinOptMax.getInstance(1, 2, 2).getShrink()); assertEquals(2, MinOptMax.getInstance(1, 3, 3).getShrink()); } + @Test public void testStrechablilty() { assertEquals(0, MinOptMax.getInstance(1).getStretch()); assertEquals(1, MinOptMax.getInstance(1, 1, 2).getStretch()); assertEquals(2, MinOptMax.getInstance(1, 1, 3).getStretch()); } + @Test public void testPlus() { assertEquals(MinOptMax.ZERO, MinOptMax.ZERO.plus(MinOptMax.ZERO)); @@ -100,6 +114,7 @@ assertEquals(MinOptMax.getInstance(4, 5, 6), MinOptMax.getInstance(1, 2, 3).plus(3)); } + @Test public void testMinus() { assertEquals(MinOptMax.ZERO, MinOptMax.ZERO.minus(MinOptMax.ZERO)); @@ -110,6 +125,7 @@ assertEquals(MinOptMax.getInstance(1, 2, 3), MinOptMax.getInstance(5, 6, 7).minus(4)); } + @Test public void testMinusFail1() { try { MinOptMax.ZERO.minus(MinOptMax.getInstance(1, 2, 3)); @@ -119,6 +135,7 @@ } } + @Test public void testMinusFail2() { try { MinOptMax.getInstance(1, 2, 3).minus(MinOptMax.getInstance(1, 3, 3)); @@ -128,6 +145,7 @@ } } + @Test public void testMinusFail3() { try { MinOptMax.ZERO.minus(MinOptMax.getInstance(1, 1, 2)); @@ -137,6 +155,7 @@ } } + @Test public void testMinusFail4() { try { MinOptMax.getInstance(1, 2, 3).minus(MinOptMax.getInstance(1, 1, 3)); @@ -146,12 +165,14 @@ } } + @Test public void testMult() { assertEquals(MinOptMax.ZERO, MinOptMax.ZERO.mult(0)); assertEquals(MinOptMax.getInstance(1, 2, 3), MinOptMax.getInstance(1, 2, 3).mult(1)); assertEquals(MinOptMax.getInstance(2, 4, 6), MinOptMax.getInstance(1, 2, 3).mult(2)); } + @Test public void testMultFail() { try { MinOptMax.getInstance(1, 2, 3).mult(-1); @@ -161,12 +182,14 @@ } } + @Test public void testNonZero() { assertFalse(MinOptMax.ZERO.isNonZero()); assertTrue(MinOptMax.getInstance(1).isNonZero()); assertTrue(MinOptMax.getInstance(1, 2, 3).isNonZero()); } + @Test public void testExtendMinimum() { assertEquals(MinOptMax.getInstance(1, 1, 1), MinOptMax.ZERO.extendMinimum(1)); @@ -180,6 +203,7 @@ MinOptMax.getInstance(1, 2, 3).extendMinimum(4)); } + @Test public void testEquals() { MinOptMax number = MinOptMax.getInstance(1, 3, 5); assertEquals(number, number); @@ -191,6 +215,7 @@ assertFalse(number.equals(new Integer(1))); } + @Test public void testHashCode() { MinOptMax number = MinOptMax.getInstance(1, 2, 3); assertEquals(number.hashCode(), number.hashCode());
diff --git a/test/java/org/apache/fop/util/AdvancedMessageFormatTestCase.java b/test/java/org/apache/fop/util/AdvancedMessageFormatTestCase.java index 3d7e72d..c4b9446 100644 --- a/test/java/org/apache/fop/util/AdvancedMessageFormatTestCase.java +++ b/test/java/org/apache/fop/util/AdvancedMessageFormatTestCase.java
@@ -19,20 +19,21 @@ package org.apache.fop.util; +import static org.junit.Assert.assertEquals; + import java.util.Map; -import junit.framework.TestCase; - -import org.xml.sax.helpers.LocatorImpl; - import org.apache.fop.events.model.EventSeverity; import org.apache.fop.util.text.AdvancedMessageFormat; +import org.junit.Test; +import org.xml.sax.helpers.LocatorImpl; /** * Tests for EventFormatter. */ -public class AdvancedMessageFormatTestCase extends TestCase { +public class AdvancedMessageFormatTestCase { + @Test public void testFormatting() throws Exception { String msg; AdvancedMessageFormat format; @@ -74,6 +75,7 @@ assertEquals("Multi-conditional: case1: value1", msg); } + @Test public void testObjectFormatting() throws Exception { String msg; AdvancedMessageFormat format; @@ -92,6 +94,7 @@ assertEquals("Here\'s a Locator: 12:7", msg); } + @Test public void testIfFormatting() throws Exception { String msg; AdvancedMessageFormat format; @@ -139,6 +142,7 @@ assertEquals("You are very, very nice!", msg); } + @Test public void testEqualsFormatting() throws Exception { String msg; AdvancedMessageFormat format; @@ -157,6 +161,7 @@ assertEquals("Error\nSome explanation!", msg); } + @Test public void testChoiceFormatting() throws Exception { String msg; AdvancedMessageFormat format;
diff --git a/test/java/org/apache/fop/util/BitmapImageUtilTestCase.java b/test/java/org/apache/fop/util/BitmapImageUtilTestCase.java index 55a9fe4..3afcc3a 100644 --- a/test/java/org/apache/fop/util/BitmapImageUtilTestCase.java +++ b/test/java/org/apache/fop/util/BitmapImageUtilTestCase.java
@@ -19,6 +19,8 @@ package org.apache.fop.util; +import static org.junit.Assert.assertEquals; + import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; @@ -29,21 +31,18 @@ import java.io.InputStream; import java.io.StringWriter; -import junit.framework.TestCase; - import org.apache.commons.io.IOUtils; - +import org.apache.fop.util.bitmap.BitmapImageUtil; +import org.apache.fop.util.bitmap.MonochromeBitmapConverter; import org.apache.xmlgraphics.image.writer.ImageWriterUtil; import org.apache.xmlgraphics.util.WriterOutputStream; import org.apache.xmlgraphics.util.io.ASCIIHexOutputStream; - -import org.apache.fop.util.bitmap.BitmapImageUtil; -import org.apache.fop.util.bitmap.MonochromeBitmapConverter; +import org.junit.Test; /** * Tests {@link BitmapImageUtil}. */ -public class BitmapImageUtilTestCase extends TestCase { +public class BitmapImageUtilTestCase { private static final boolean DEBUG = true; private static final boolean TEST_PIXELS = false; @@ -52,6 +51,7 @@ * Tests the convertTo* methods. * @throws Exception if an error occurs */ + @Test public void testConvertToMono() throws Exception { BufferedImage testImage = createTestImage(); saveAsPNG(testImage, "test-image");
diff --git a/test/java/org/apache/fop/util/ColorUtilTestCase.java b/test/java/org/apache/fop/util/ColorUtilTestCase.java index 7b59952..b16d728 100644 --- a/test/java/org/apache/fop/util/ColorUtilTestCase.java +++ b/test/java/org/apache/fop/util/ColorUtilTestCase.java
@@ -19,29 +19,33 @@ package org.apache.fop.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.awt.Color; import java.awt.color.ColorSpace; import java.net.URI; -import junit.framework.TestCase; - +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.apps.FopFactory; import org.apache.xmlgraphics.java2d.color.ColorSpaces; import org.apache.xmlgraphics.java2d.color.ColorWithAlternatives; import org.apache.xmlgraphics.java2d.color.NamedColorSpace; import org.apache.xmlgraphics.java2d.color.RenderingIntent; - -import org.apache.fop.apps.FOUserAgent; -import org.apache.fop.apps.FopFactory; +import org.junit.Test; /** * Tests the ColorUtil class. */ -public class ColorUtilTestCase extends TestCase { +public class ColorUtilTestCase { /** * Test serialization to String. * @throws Exception if an error occurs */ + @Test public void testSerialization() throws Exception { Color col = new Color(1.0f, 1.0f, 0.5f, 1.0f); String s = ColorUtil.colorToString(col); @@ -59,6 +63,7 @@ * Test deserialization from String. * @throws Exception if an error occurs */ + @Test public void testDeserialization() throws Exception { Color col = ColorUtil.parseColorString(null, "#ffff7f"); assertEquals(255, col.getRed()); @@ -77,6 +82,7 @@ * Test equals(). * @throws Exception if an error occurs */ + @Test public void testEquals() throws Exception { Color col1 = ColorUtil.parseColorString(null, "#ff0000cc"); Color col2 = ColorUtil.parseColorString(null, "#ff0000cc"); @@ -97,6 +103,7 @@ * Tests the rgb() function. * @throws Exception if an error occurs */ + @Test public void testRGB() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); FOUserAgent ua = fopFactory.newFOUserAgent(); @@ -114,6 +121,7 @@ * Tests the fop-rgb-icc() function. * @throws Exception if an error occurs */ + @Test public void testRGBICC() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); URI sRGBLoc = new URI( @@ -162,6 +170,7 @@ * Tests the cmyk() function. * @throws Exception if an error occurs */ + @Test public void testCMYK() throws Exception { ColorWithAlternatives colActual; String colSpec; @@ -248,6 +257,7 @@ * Tests color for the #Separation pseudo-colorspace. * @throws Exception if an error occurs */ + @Test public void testSeparationColor() throws Exception { ColorWithFallback colActual; String colSpec; @@ -281,6 +291,7 @@ * Tests the fop-rgb-named-color() function. * @throws Exception if an error occurs */ + @Test public void testNamedColorProfile() throws Exception { FopFactory fopFactory = FopFactory.newInstance(); URI ncpLoc = new URI("file:test/resources/color/ncp-example.icc");
diff --git a/test/java/org/apache/fop/util/ElementListUtilsTestCase.java b/test/java/org/apache/fop/util/ElementListUtilsTestCase.java index bebad44..701c1b2 100644 --- a/test/java/org/apache/fop/util/ElementListUtilsTestCase.java +++ b/test/java/org/apache/fop/util/ElementListUtilsTestCase.java
@@ -19,6 +19,9 @@ package org.apache.fop.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + import java.util.LinkedList; import org.apache.fop.layoutmgr.ElementListUtils; @@ -26,18 +29,18 @@ import org.apache.fop.layoutmgr.KnuthElement; import org.apache.fop.layoutmgr.KnuthGlue; import org.apache.fop.layoutmgr.KnuthPenalty; - -import junit.framework.TestCase; +import org.junit.Test; /** * Test class for ElementListUtils. */ -public class ElementListUtilsTestCase extends TestCase { +public class ElementListUtilsTestCase { /** * Tests ElementListUtils.removeLegalBreaks(). * @throws Exception if the test fails */ + @Test public void testRemoveElementPenalty1() throws Exception { LinkedList lst = new LinkedList(); lst.add(new KnuthBox(4000, null, false)); @@ -64,6 +67,7 @@ * Tests ElementListUtils.removeLegalBreaks(). * @throws Exception if the test fails */ + @Test public void testRemoveElementPenalty2() throws Exception { LinkedList lst = new LinkedList(); lst.add(new KnuthBox(4000, null, false)); @@ -93,6 +97,7 @@ * Tests ElementListUtils.removeLegalBreaksFromEnd(). * @throws Exception if the test fails */ + @Test public void testRemoveElementFromEndPenalty1() throws Exception { LinkedList lst = new LinkedList(); lst.add(new KnuthBox(4000, null, false)); @@ -119,6 +124,7 @@ * Tests ElementListUtils.removeLegalBreaksFromEnd(). * @throws Exception if the test fails */ + @Test public void testRemoveElementFromEndPenalty2() throws Exception { LinkedList lst = new LinkedList(); lst.add(new KnuthBox(4000, null, false)); @@ -142,6 +148,4 @@ assertEquals(KnuthElement.INFINITE, ((KnuthPenalty)lst.get(5)).getPenalty()); assertEquals(0, ((KnuthGlue)lst.get(6)).getWidth()); } - - } \ No newline at end of file
diff --git a/test/java/org/apache/fop/util/NumberConverterTestCase.java b/test/java/org/apache/fop/util/NumberConverterTestCase.java new file mode 100644 index 0000000..900f0a6 --- /dev/null +++ b/test/java/org/apache/fop/util/NumberConverterTestCase.java
@@ -0,0 +1,1564 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/* $Id$ */ + +package org.apache.fop.util; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +// CSOFF: LineLengthCheck + +/** + * Test number converter functionality. + * + * @author Glenn Adams + */ +public class NumberConverterTestCase { + + static private String[][] formatDecimal = + { + { "1" }, + { "0", "0" }, + { "1", "1" }, + { "1000", "1000" }, + { "1000000", "1000000" }, + { "1000000000", "1000000000" }, + }; + + static private String[][] formatDecimalPadded = + { + { "001" }, + { "0", "000" }, + { "1", "001" }, + { "9", "009" }, + { "10", "010" }, + { "99", "099" }, + { "100", "100" }, + { "999", "999" }, + { "1000", "1000" }, + }; + + static private String[][] formatDecimalGrouped = + { + { "1", ",", "1" }, + { "0", "0" }, + { "1", "1" }, + { "1000", "1,0,0,0" }, + { "1000000", "1,0,0,0,0,0,0" }, + { "1000000000", "1,0,0,0,0,0,0,0,0,0" }, + }; + + static private String[][] formatDecimalGroupedPadded = + { + { "001", ",", "2" }, + { "0", "0,00" }, + { "1", "0,01" }, + { "9", "0,09" }, + { "10", "0,10" }, + { "99", "0,99" }, + { "100", "1,00" }, + { "999", "9,99" }, + { "1000", "10,00" }, + }; + + static private String[][] formatDecimalArabic = + { + { "\u0661" }, + { "0", "\u0660" }, + { "1", "\u0661" }, + { "2", "\u0662" }, + { "3", "\u0663" }, + { "4", "\u0664" }, + { "5", "\u0665" }, + { "6", "\u0666" }, + { "7", "\u0667" }, + { "8", "\u0668" }, + { "9", "\u0669" }, + { "10", "\u0661\u0660" }, + { "1000", "\u0661\u0660\u0660\u0660" }, + { "1000000", "\u0661\u0660\u0660\u0660\u0660\u0660\u0660" }, + { "1000000000", "\u0661\u0660\u0660\u0660\u0660\u0660\u0660\u0660\u0660\u0660" }, + }; + + static private String[][] formatDecimalArabicPadded = + { + { "\u0660\u0660\u0661" }, + { "0", "\u0660\u0660\u0660" }, + { "1", "\u0660\u0660\u0661" }, + { "9", "\u0660\u0660\u0669" }, + { "10", "\u0660\u0661\u0660" }, + { "99", "\u0660\u0669\u0669" }, + { "100", "\u0661\u0660\u0660" }, + { "999", "\u0669\u0669\u0669" }, + { "1000", "\u0661\u0660\u0660\u0660" }, + }; + + static private String[][] formatDecimalArabicGrouped = + { + { "\u0661", "\u066c", "1" }, + { "0", "\u0660" }, + { "1", "\u0661" }, + { "1000", "\u0661\u066c\u0660\u066c\u0660\u066c\u0660" }, + { "1000000", "\u0661\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660" }, + { "1000000000", "\u0661\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660\u066c\u0660" }, + }; + + static private String[][] formatDecimalArabicGroupedPadded = + { + { "\u0660\u0660\u0661", "\u066c", "2" }, + { "0", "\u0660\u066c\u0660\u0660" }, + { "1", "\u0660\u066c\u0660\u0661" }, + { "9", "\u0660\u066c\u0660\u0669" }, + { "10", "\u0660\u066c\u0661\u0660" }, + { "99", "\u0660\u066c\u0669\u0669" }, + { "100", "\u0661\u066c\u0660\u0660" }, + { "999", "\u0669\u066c\u0669\u0669" }, + { "1000", "\u0661\u0660\u066c\u0660\u0660" }, + }; + + static private String[][] formatDecimalThai = + { + { "\u0E51" }, + { "0", "\u0E50" }, + { "1", "\u0E51" }, + { "2", "\u0E52" }, + { "3", "\u0E53" }, + { "4", "\u0E54" }, + { "5", "\u0E55" }, + { "6", "\u0E56" }, + { "7", "\u0E57" }, + { "8", "\u0E58" }, + { "9", "\u0E59" }, + { "10", "\u0E51\u0E50" }, + { "1000", "\u0E51\u0E50\u0E50\u0E50" }, + { "1000000", "\u0E51\u0E50\u0E50\u0E50\u0E50\u0E50\u0E50" }, + { "1000000000", "\u0E51\u0E50\u0E50\u0E50\u0E50\u0E50\u0E50\u0E50\u0E50\u0E50" }, + }; + + static private String[][] formatDecimalThaiPadded = + { + { "\u0E50\u0E50\u0E51" }, + { "0", "\u0E50\u0E50\u0E50" }, + { "1", "\u0E50\u0E50\u0E51" }, + { "9", "\u0E50\u0E50\u0E59" }, + { "10", "\u0E50\u0E51\u0E50" }, + { "99", "\u0E50\u0E59\u0E59" }, + { "100", "\u0E51\u0E50\u0E50" }, + { "999", "\u0E59\u0E59\u0E59" }, + { "1000", "\u0E51\u0E50\u0E50\u0E50" }, + }; + + static private String[][] formatRomanLower = + { + { "i" }, + { "0", "0" }, + { "1", "i" }, + { "2", "ii" }, + { "3", "iii" }, + { "4", "iv" }, + { "5", "v" }, + { "6", "vi" }, + { "7", "vii" }, + { "8", "viii" }, + { "9", "ix" }, + { "10", "x" }, + { "20", "xx" }, + { "30", "xxx" }, + { "40", "xl" }, + { "50", "l" }, + { "60", "lx" }, + { "70", "lxx" }, + { "80", "lxxx" }, + { "90", "xc" }, + { "100", "c" }, + { "200", "cc" }, + { "300", "ccc" }, + { "400", "cd" }, + { "500", "d" }, + { "600", "dc" }, + { "700", "dcc" }, + { "800", "dccc" }, + { "900", "cm" }, + { "1000", "m" }, + { "2000", "mm" }, + { "2011", "mmxi" }, + { "4999", "mmmmcmxcix" }, + { "5000", "5000" }, + }; + + static private String[][] formatRomanUpper = + { + + { "I" }, + { "0", "0" }, + { "1", "I" }, + { "2", "II" }, + { "3", "III" }, + { "4", "IV" }, + { "5", "V" }, + { "6", "VI" }, + { "7", "VII" }, + { "8", "VIII" }, + { "9", "IX" }, + { "10", "X" }, + { "20", "XX" }, + { "30", "XXX" }, + { "40", "XL" }, + { "50", "L" }, + { "60", "LX" }, + { "70", "LXX" }, + { "80", "LXXX" }, + { "90", "XC" }, + { "100", "C" }, + { "200", "CC" }, + { "300", "CCC" }, + { "400", "CD" }, + { "500", "D" }, + { "600", "DC" }, + { "700", "DCC" }, + { "800", "DCCC" }, + { "900", "CM" }, + { "1000", "M" }, + { "2000", "MM" }, + { "2011", "MMXI" }, + { "4999", "MMMMCMXCIX" }, + { "5000", "5000" }, + }; + + static private String[][] formatRomanLargeLower = + { + { "i", null, null, null, "large" }, + { "0", "0" }, + { "1", "i" }, + { "2", "ii" }, + { "3", "iii" }, + { "4", "iv" }, + { "5", "v" }, + { "6", "vi" }, + { "7", "vii" }, + { "8", "viii" }, + { "9", "ix" }, + { "10", "x" }, + { "20", "xx" }, + { "30", "xxx" }, + { "40", "xl" }, + { "50", "l" }, + { "60", "lx" }, + { "70", "lxx" }, + { "80", "lxxx" }, + { "90", "xc" }, + { "100", "c" }, + { "200", "cc" }, + { "300", "ccc" }, + { "400", "cd" }, + { "500", "d" }, + { "600", "dc" }, + { "700", "dcc" }, + { "800", "dccc" }, + { "900", "cm" }, + { "1000", "m" }, + { "2000", "mm" }, + { "2011", "mmxi" }, + { "4999", "\u2180\u2181cmxcix" }, + { "5000", "\u2181" }, + { "5001", "\u2181i" }, + { "9999", "\u2180\u2182cmxcix" }, + { "10000", "\u2182" }, + { "10001", "\u2182i" }, + { "49999", "\u2182\u2187\u2180\u2182cmxcix" }, + { "99999", "\u2182\u2188\u2180\u2182cmxcix" }, + { "100000", "\u2188" }, + { "100001", "\u2188i" }, + { "199999", "\u2188\u2182\u2188\u2180\u2182cmxcix" }, + { "200000", "200000" }, + }; + + static private String[][] formatRomanLargeUpper = + { + { "I", null, null, null, "large" }, + { "0", "0" }, + { "1", "I" }, + { "2", "II" }, + { "3", "III" }, + { "4", "IV" }, + { "5", "V" }, + { "6", "VI" }, + { "7", "VII" }, + { "8", "VIII" }, + { "9", "IX" }, + { "10", "X" }, + { "20", "XX" }, + { "30", "XXX" }, + { "40", "XL" }, + { "50", "L" }, + { "60", "LX" }, + { "70", "LXX" }, + { "80", "LXXX" }, + { "90", "XC" }, + { "100", "C" }, + { "200", "CC" }, + { "300", "CCC" }, + { "400", "CD" }, + { "500", "D" }, + { "600", "DC" }, + { "700", "DCC" }, + { "800", "DCCC" }, + { "900", "CM" }, + { "1000", "M" }, + { "2000", "MM" }, + { "2011", "MMXI" }, + { "4999", "\u2180\u2181CMXCIX" }, + { "5000", "\u2181" }, + { "5001", "\u2181I" }, + { "9999", "\u2180\u2182CMXCIX" }, + { "10000", "\u2182" }, + { "10001", "\u2182I" }, + { "49999", "\u2182\u2187\u2180\u2182CMXCIX" }, + { "99999", "\u2182\u2188\u2180\u2182CMXCIX" }, + { "100000", "\u2188" }, + { "100001", "\u2188I" }, + { "199999", "\u2188\u2182\u2188\u2180\u2182CMXCIX" }, + { "200000", "200000" }, + }; + + static private String[][] formatRomanNumberFormsLower = + { + { "i", null, null, null, "unicode-number-forms" }, + { "0", "0" }, + { "1", "\u2170" }, + { "2", "\u2171" }, + { "3", "\u2172" }, + { "4", "\u2173" }, + { "5", "\u2174" }, + { "6", "\u2175" }, + { "7", "\u2176" }, + { "8", "\u2177" }, + { "9", "\u2178" }, + { "10", "\u2179" }, + { "11", "\u2179\u2170" }, + { "12", "\u2179\u2171" }, + { "13", "\u2179\u2172" }, + { "14", "\u2179\u2173" }, + { "15", "\u2179\u2174" }, + { "16", "\u2179\u2175" }, + { "17", "\u2179\u2176" }, + { "18", "\u2179\u2177" }, + { "19", "\u2179\u2178" }, + { "20", "\u2179\u2179" }, + { "30", "\u2179\u2179\u2179" }, + { "40", "\u2179\u217C" }, + { "50", "\u217C" }, + { "60", "\u217C\u2179" }, + { "70", "\u217C\u2179\u2179" }, + { "80", "\u217C\u2179\u2179\u2179" }, + { "90", "\u2179\u217D" }, + { "100", "\u217D" }, + { "200", "\u217D\u217D" }, + { "300", "\u217D\u217D\u217D" }, + { "400", "\u217D\u217E" }, + { "500", "\u217E" }, + { "600", "\u217E\u217D" }, + { "700", "\u217E\u217D\u217D" }, + { "800", "\u217E\u217D\u217D\u217D" }, + { "900", "\u217D\u217F" }, + { "999", "\u217D\u217F\u2179\u217D\u2178" }, + { "1000", "\u217F" }, + { "2000", "\u217F\u217F" }, + { "2011", "\u217F\u217F\u2179\u2170" }, + { "4999", "\u2180\u2181\u217D\u217F\u2179\u217D\u2178" }, + { "5000", "\u2181" }, + { "5001", "\u2181\u2170" }, + { "9999", "\u2180\u2182\u217D\u217F\u2179\u217D\u2178" }, + { "10000", "\u2182" }, + { "10001", "\u2182\u2170" }, + { "49999", "\u2182\u2187\u2180\u2182\u217D\u217F\u2179\u217D\u2178" }, + { "99999", "\u2182\u2188\u2180\u2182\u217D\u217F\u2179\u217D\u2178" }, + { "100000", "\u2188" }, + { "100001", "\u2188\u2170" }, + { "199999", "\u2188\u2182\u2188\u2180\u2182\u217D\u217F\u2179\u217D\u2178" }, + { "200000", "200000" }, + }; + + static private String[][] formatRomanNumberFormsUpper = + { + { "I", null, null, null, "unicode-number-forms" }, + { "0", "0" }, + { "1", "\u2160" }, + { "2", "\u2161" }, + { "3", "\u2162" }, + { "4", "\u2163" }, + { "5", "\u2164" }, + { "6", "\u2165" }, + { "7", "\u2166" }, + { "8", "\u2167" }, + { "9", "\u2168" }, + { "10", "\u2169" }, + { "11", "\u2169\u2160" }, + { "12", "\u2169\u2161" }, + { "13", "\u2169\u2162" }, + { "14", "\u2169\u2163" }, + { "15", "\u2169\u2164" }, + { "16", "\u2169\u2165" }, + { "17", "\u2169\u2166" }, + { "18", "\u2169\u2167" }, + { "19", "\u2169\u2168" }, + { "20", "\u2169\u2169" }, + { "30", "\u2169\u2169\u2169" }, + { "40", "\u2169\u216C" }, + { "50", "\u216C" }, + { "60", "\u216C\u2169" }, + { "70", "\u216C\u2169\u2169" }, + { "80", "\u216C\u2169\u2169\u2169" }, + { "90", "\u2169\u216D" }, + { "100", "\u216D" }, + { "200", "\u216D\u216D" }, + { "300", "\u216D\u216D\u216D" }, + { "400", "\u216D\u216E" }, + { "500", "\u216E" }, + { "600", "\u216E\u216D" }, + { "700", "\u216E\u216D\u216D" }, + { "800", "\u216E\u216D\u216D\u216D" }, + { "900", "\u216D\u216F" }, + { "999", "\u216D\u216F\u2169\u216D\u2168" }, + { "1000", "\u216F" }, + { "2000", "\u216F\u216F" }, + { "2011", "\u216F\u216F\u2169\u2160" }, + { "4999", "\u2180\u2181\u216D\u216F\u2169\u216D\u2168" }, + { "5000", "\u2181" }, + { "5001", "\u2181\u2160" }, + { "9999", "\u2180\u2182\u216D\u216F\u2169\u216D\u2168" }, + { "10000", "\u2182" }, + { "10001", "\u2182\u2160" }, + { "49999", "\u2182\u2187\u2180\u2182\u216D\u216F\u2169\u216D\u2168" }, + { "99999", "\u2182\u2188\u2180\u2182\u216D\u216F\u2169\u216D\u2168" }, + { "100000", "\u2188" }, + { "100001", "\u2188\u2160" }, + { "199999", "\u2188\u2182\u2188\u2180\u2182\u216D\u216F\u2169\u216D\u2168" }, + { "200000", "200000" }, + }; + + static private String[][] formatAlphabeticLatinLower = + { + { "a" }, + { "0", "0" }, + { "1", "a" }, + { "2", "b" }, + { "3", "c" }, + { "10", "j" }, + { "20", "t" }, + { "26", "z" }, + { "27", "aa" }, + { "28", "ab" }, + { "29", "ac" }, + { "52", "az" }, + { "53", "ba" }, + { "702", "zz" }, + { "703", "aaa" }, + { "999999", "bdwgm" }, + { "1000000", "bdwgn" }, + }; + + static private String[][] formatAlphabeticLatinUpper = + { + { "A" }, + { "0", "0" }, + { "1", "A" }, + { "2", "B" }, + { "3", "C" }, + { "10", "J" }, + { "20", "T" }, + { "26", "Z" }, + { "27", "AA" }, + { "28", "AB" }, + { "29", "AC" }, + { "52", "AZ" }, + { "53", "BA" }, + { "702", "ZZ" }, + { "703", "AAA" }, + { "999999", "BDWGM" }, + { "1000000", "BDWGN" }, + }; + + static private String[][] formatAlphabeticArabicHijai = + { + { "\u0627", null, null, "alphabetic" }, + { "0", "0" }, + { "1", "\u0623" }, + { "2", "\u0628" }, + { "3", "\u062A" }, + { "4", "\u062B" }, + { "5", "\u062C" }, + { "6", "\u062D" }, + { "7", "\u062E" }, + { "8", "\u062F" }, + { "9", "\u0630" }, + { "10", "\u0631" }, + { "11", "\u0632" }, + { "12", "\u0633" }, + { "13", "\u0634" }, + { "14", "\u0635" }, + { "15", "\u0636" }, + { "16", "\u0637" }, + { "17", "\u0638" }, + { "18", "\u0639" }, + { "19", "\u063A" }, + { "20", "\u0641" }, + { "21", "\u0642" }, + { "22", "\u0643" }, + { "23", "\u0644" }, + { "24", "\u0645" }, + { "25", "\u0646" }, + { "26", "\u0647" }, + { "27", "\u0648" }, + { "28", "\u0649" }, + { "29", "\u0623\u0623" }, + { "56", "\u0623\u0649" }, + { "57", "\u0628\u0623" }, + { "812", "\u0649\u0649" }, + { "813", "\u0623\u0623\u0623" }, + { "999999", "\u0623\u0638\u0636\u0635\u062E" }, + { "1000000", "\u0623\u0638\u0636\u0635\u062F" }, + }; + + static private String[][] formatAlphabeticArabicAbjadi = + { + { "\u0627", null, null, "traditional" }, + { "0", "0" }, + { "1", "\u0623" }, + { "2", "\u0628" }, + { "3", "\u062C" }, + { "4", "\u062F" }, + { "5", "\u0647" }, + { "6", "\u0648" }, + { "7", "\u0632" }, + { "8", "\u062D" }, + { "9", "\u0637" }, + { "10", "\u0649" }, + { "11", "\u0643" }, + { "12", "\u0644" }, + { "13", "\u0645" }, + { "14", "\u0646" }, + { "15", "\u0633" }, + { "16", "\u0639" }, + { "17", "\u0641" }, + { "18", "\u0635" }, + { "19", "\u0642" }, + { "20", "\u0631" }, + { "21", "\u0634" }, + { "22", "\u062A" }, + { "23", "\u062B" }, + { "24", "\u062E" }, + { "25", "\u0630" }, + { "26", "\u0636" }, + { "27", "\u0638" }, + { "28", "\u063A" }, + { "29", "\u0623\u0623" }, + { "56", "\u0623\u063A" }, + { "57", "\u0628\u0623" }, + { "812", "\u063A\u063A" }, + { "813", "\u0623\u0623\u0623" }, + { "999999", "\u0623\u0641\u0633\u0646\u0632" }, + { "1000000", "\u0623\u0641\u0633\u0646\u062D" }, + }; + + static private String[][] formatNumeralArabicAbjadi = + { + { "\u0623", null, null, "traditional" }, + { "0", "0" }, + { "1", "\u0623" }, + { "2", "\u0628" }, + { "3", "\u062C" }, + { "4", "\u062F" }, + { "5", "\u0647" }, + { "6", "\u0648" }, + { "7", "\u0632" }, + { "8", "\u062D" }, + { "9", "\u0637" }, + { "10", "\u0649" }, + { "11", "\u0649\u0623" }, + { "12", "\u0649\u0628" }, + { "13", "\u0649\u062C" }, + { "14", "\u0649\u062F" }, + { "15", "\u0649\u0647" }, + { "16", "\u0649\u0648" }, + { "17", "\u0649\u0632" }, + { "18", "\u0649\u062D" }, + { "19", "\u0649\u0637" }, + { "20", "\u0643" }, + { "30", "\u0644" }, + { "40", "\u0645" }, + { "50", "\u0646" }, + { "60", "\u0633" }, + { "70", "\u0639" }, + { "80", "\u0641" }, + { "90", "\u0635" }, + { "99", "\u0635\u0637" }, + { "100", "\u0642" }, + { "101", "\u0642\u0623" }, + { "200", "\u0631" }, + { "300", "\u0634" }, + { "400", "\u062A" }, + { "500", "\u062B" }, + { "600", "\u062E" }, + { "700", "\u0630" }, + { "800", "\u0636" }, + { "900", "\u0638" }, + { "999", "\u0638\u0635\u0637" }, + { "1000", "\u063A" }, + { "1999", "\u063A\u0638\u0635\u0637" }, + { "2000", "2000" }, + }; + + static private String[][] formatAlphabeticHebrew = + { + { "\u05D0", null, null, "alphabetic" }, + { "0", "0" }, + { "1", "\u05D0" }, + { "2", "\u05D1" }, + { "3", "\u05D2" }, + { "4", "\u05D3" }, + { "5", "\u05D4" }, + { "6", "\u05D5" }, + { "7", "\u05D6" }, + { "8", "\u05D7" }, + { "9", "\u05D8" }, + { "10", "\u05D9" }, + { "11", "\u05DB" }, + { "12", "\u05DC" }, + { "13", "\u05DE" }, + { "14", "\u05E0" }, + { "15", "\u05E1" }, + { "16", "\u05E2" }, + { "17", "\u05E4" }, + { "18", "\u05E6" }, + { "19", "\u05E7" }, + { "20", "\u05E8" }, + { "21", "\u05E9" }, + { "22", "\u05EA" }, + { "23", "\u05DA" }, + { "24", "\u05DD" }, + { "25", "\u05DF" }, + { "26", "\u05E3" }, + { "27", "\u05E5" }, + { "28", "\u05D0\u05D0" }, + { "54", "\u05D0\u05E5" }, + { "55", "\u05D1\u05D0" }, + { "756", "\u05E5\u05E5" }, + { "757", "\u05D0\u05D0\u05D0" }, + { "999999", "\u05D0\u05DA\u05E9\u05E7\u05E5" }, + { "1000000", "\u05D0\u05DA\u05E9\u05E8\u05D0" }, + }; + + static private String[][] formatNumeralHebrewGematria = + { + { "\u05D0", null, null, "traditional" }, + { "0", "0" }, + { "1", "\u05D0" }, + { "2", "\u05D1" }, + { "3", "\u05D2" }, + { "4", "\u05D3" }, + { "5", "\u05D4" }, + { "6", "\u05D5" }, + { "7", "\u05D6" }, + { "8", "\u05D7" }, + { "9", "\u05D8" }, + { "10", "\u05D9" }, + { "11", "\u05D9\u05D0" }, + { "12", "\u05D9\u05D1" }, + { "13", "\u05D9\u05D2" }, + { "14", "\u05D9\u05D3" }, + { "15", "\u05D8\u05F4\u05D5" }, + { "16", "\u05D8\u05F4\u05D6" }, + { "17", "\u05D9\u05D6" }, + { "18", "\u05D9\u05D7" }, + { "19", "\u05D9\u05D8" }, + { "20", "\u05DB" }, + { "30", "\u05DC" }, + { "40", "\u05DE" }, + { "50", "\u05E0" }, + { "60", "\u05E1" }, + { "70", "\u05E2" }, + { "80", "\u05E4" }, + { "90", "\u05E6" }, + { "99", "\u05E6\u05D8" }, + { "100", "\u05E7" }, + { "101", "\u05E7\u05D0" }, + { "200", "\u05E8" }, + { "300", "\u05E9" }, + { "400", "\u05EA" }, + { "500", "\u05EA\u05F4\u05E7" }, + { "600", "\u05EA\u05F4\u05E8" }, + { "700", "\u05EA\u05F4\u05E9" }, + { "800", "\u05EA\u05F4\u05EA" }, + { "900", "\u05EA\u05EA\u05F4\u05E7" }, + { "999", "\u05EA\u05EA\u05F4\u05E7\u05E6\u05D8" }, + { "1000", "\u05D0\u05F3" }, + { "1999", "\u05D0\u05F3\u05EA\u05EA\u05F4\u05E7\u05E6\u05D8" }, + { "2000", "2000" }, + }; + + static private String[][] formatAlphabeticThai = + { + { "\u0E01", null, null, "alphabetic" }, + { "0", "0" }, + { "1", "\u0E01" }, + { "2", "\u0E02" }, + { "3", "\u0E03" }, + { "10", "\u0E0A" }, + { "20", "\u0E14" }, + { "30", "\u0E1E" }, + { "40", "\u0E2A" }, + { "44", "\u0E2E" }, + { "45", "\u0E01\u0E01" }, + { "88", "\u0E01\u0E2E" }, + { "89", "\u0E02\u0E01" }, + { "1980", "\u0E2E\u0E2E" }, + { "1981", "\u0E01\u0E01\u0E01" }, + { "999999", "\u0E0B\u0E20\u0E17\u0E0B" }, + { "1000000", "\u0E0B\u0E20\u0E17\u0E0C" }, + }; + + static private String[][] formatWordEnglishLower = + { + { "w", null, null, null, null, "eng" }, + { "0", "zero" }, + { "1", "one" }, + { "2", "two" }, + { "3", "three" }, + { "4", "four" }, + { "5", "five" }, + { "6", "six" }, + { "7", "seven" }, + { "8", "eight" }, + { "9", "nine" }, + { "10", "ten" }, + { "99", "ninety nine" }, + { "100", "one hundred" }, + { "999", "nine hundred ninety nine" }, + { "1000", "one thousand" }, + { "999999", "nine hundred ninety nine thousand nine hundred ninety nine" }, + { "1000000", "one million" }, + { "999999999", "nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine" }, + { "1000000000", "one billion" } + }; + + static private String[][] formatWordEnglishUpper = + { + { "W", null, null, null, null, "eng" }, + { "0", "ZERO" }, + { "1", "ONE" }, + { "2", "TWO" }, + { "3", "THREE" }, + { "4", "FOUR" }, + { "5", "FIVE" }, + { "6", "SIX" }, + { "7", "SEVEN" }, + { "8", "EIGHT" }, + { "9", "NINE" }, + { "10", "TEN" }, + { "99", "NINETY NINE" }, + { "100", "ONE HUNDRED" }, + { "999", "NINE HUNDRED NINETY NINE" }, + { "1000", "ONE THOUSAND" }, + { "999999", "NINE HUNDRED NINETY NINE THOUSAND NINE HUNDRED NINETY NINE" }, + { "1000000", "ONE MILLION" }, + { "999999999", "NINE HUNDRED NINETY NINE MILLION NINE HUNDRED NINETY NINE THOUSAND NINE HUNDRED NINETY NINE" }, + { "1000000000", "ONE BILLION" } + }; + + static private String[][] formatWordEnglishTitle = + { + { "Ww", null, null, null, null, "eng" }, + { "0", "Zero" }, + { "1", "One" }, + { "2", "Two" }, + { "3", "Three" }, + { "4", "Four" }, + { "5", "Five" }, + { "6", "Six" }, + { "7", "Seven" }, + { "8", "Eight" }, + { "9", "Nine" }, + { "10", "Ten" }, + { "99", "Ninety Nine" }, + { "100", "One Hundred" }, + { "999", "Nine Hundred Ninety Nine" }, + { "1000", "One Thousand" }, + { "999999", "Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine" }, + { "1000000", "One Million" }, + { "999999999", "Nine Hundred Ninety Nine Million Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine" }, + { "1000000000", "One Billion" } + }; + + static private String[][] formatWordSpanishLower = + { + { "w", null, null, null, null, "spa" }, + { "0", "cero" }, + { "1", "uno" }, + { "2", "dos" }, + { "3", "tres" }, + { "4", "cuatro" }, + { "5", "cinco" }, + { "6", "seise" }, + { "7", "siete" }, + { "8", "ocho" }, + { "9", "nueve" }, + { "10", "diez" }, + { "11", "once" }, + { "12", "doce" }, + { "13", "trece" }, + { "14", "catorce" }, + { "15", "quince" }, + { "16", "diecis\u00e9is" }, + { "17", "diecisiete" }, + { "18", "dieciocho" }, + { "19", "diecinueve" }, + { "20", "veinte" }, + { "21", "veintiuno" }, + { "22", "veintid\u00f3s" }, + { "23", "veintitr\u00e9s" }, + { "24", "veinticuatro" }, + { "25", "veinticinco" }, + { "26", "veintis\u00e9is" }, + { "27", "veintisiete" }, + { "28", "veintiocho" }, + { "29", "veintinueve" }, + { "30", "treinta" }, + { "31", "treinta y uno" }, + { "32", "treinta y dos" }, + { "40", "cuarenta" }, + { "41", "cuarenta y uno" }, + { "42", "cuarenta y dos" }, + { "50", "cincuenta" }, + { "51", "cincuenta y uno" }, + { "52", "cincuenta y dos" }, + { "60", "sesenta" }, + { "61", "sesenta y uno" }, + { "62", "sesenta y dos" }, + { "70", "setenta" }, + { "71", "setenta y uno" }, + { "72", "setenta y dos" }, + { "80", "ochenta" }, + { "81", "ochenta y uno" }, + { "82", "ochenta y dos" }, + { "90", "noventa" }, + { "91", "noventa y uno" }, + { "92", "noventa y dos" }, + { "99", "noventa y nueve" }, + { "100", "cien" }, + { "101", "ciento uno" }, + { "102", "ciento dos" }, + { "200", "doscientos" }, + { "300", "trescientos" }, + { "400", "cuatrocientos" }, + { "500", "quinientos" }, + { "600", "seiscientos" }, + { "700", "setecientos" }, + { "800", "ochocientos" }, + { "900", "novecientos" }, + { "999", "novecientos noventa y nueve" }, + { "1000", "mil" }, + { "1001", "mil uno" }, + { "1002", "mil dos" }, + { "2000", "dos mil" }, + { "2001", "dos mil uno" }, + { "100000", "cien mil" }, + { "100001", "cien mil uno" }, + { "999999", "novecientos noventa y nueve mil novecientos noventa y nueve" }, + { "1000000", "un mill\u00f3n" }, + { "999999999", "novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve" }, + { "1000000000", "mil millones" } + }; + + static private String[][] formatWordSpanishUpper = + { + { "W", null, null, null, null, "spa" }, + { "0", "CERO" }, + { "1", "UNO" }, + { "2", "DOS" }, + { "3", "TRES" }, + { "4", "CUATRO" }, + { "5", "CINCO" }, + { "6", "SEISE" }, + { "7", "SIETE" }, + { "8", "OCHO" }, + { "9", "NUEVE" }, + { "10", "DIEZ" }, + { "11", "ONCE" }, + { "12", "DOCE" }, + { "13", "TRECE" }, + { "14", "CATORCE" }, + { "15", "QUINCE" }, + { "16", "DIECIS\u00c9IS" }, + { "17", "DIECISIETE" }, + { "18", "DIECIOCHO" }, + { "19", "DIECINUEVE" }, + { "20", "VEINTE" }, + { "21", "VEINTIUNO" }, + { "22", "VEINTID\u00d3S" }, + { "23", "VEINTITR\u00c9S" }, + { "24", "VEINTICUATRO" }, + { "25", "VEINTICINCO" }, + { "26", "VEINTIS\u00c9IS" }, + { "27", "VEINTISIETE" }, + { "28", "VEINTIOCHO" }, + { "29", "VEINTINUEVE" }, + { "30", "TREINTA" }, + { "31", "TREINTA Y UNO" }, + { "32", "TREINTA Y DOS" }, + { "40", "CUARENTA" }, + { "41", "CUARENTA Y UNO" }, + { "42", "CUARENTA Y DOS" }, + { "50", "CINCUENTA" }, + { "51", "CINCUENTA Y UNO" }, + { "52", "CINCUENTA Y DOS" }, + { "60", "SESENTA" }, + { "61", "SESENTA Y UNO" }, + { "62", "SESENTA Y DOS" }, + { "70", "SETENTA" }, + { "71", "SETENTA Y UNO" }, + { "72", "SETENTA Y DOS" }, + { "80", "OCHENTA" }, + { "81", "OCHENTA Y UNO" }, + { "82", "OCHENTA Y DOS" }, + { "90", "NOVENTA" }, + { "91", "NOVENTA Y UNO" }, + { "92", "NOVENTA Y DOS" }, + { "99", "NOVENTA Y NUEVE" }, + { "100", "CIEN" }, + { "101", "CIENTO UNO" }, + { "102", "CIENTO DOS" }, + { "200", "DOSCIENTOS" }, + { "300", "TRESCIENTOS" }, + { "400", "CUATROCIENTOS" }, + { "500", "QUINIENTOS" }, + { "600", "SEISCIENTOS" }, + { "700", "SETECIENTOS" }, + { "800", "OCHOCIENTOS" }, + { "900", "NOVECIENTOS" }, + { "999", "NOVECIENTOS NOVENTA Y NUEVE" }, + { "1000", "MIL" }, + { "1001", "MIL UNO" }, + { "1002", "MIL DOS" }, + { "2000", "DOS MIL" }, + { "2001", "DOS MIL UNO" }, + { "100000", "CIEN MIL" }, + { "100001", "CIEN MIL UNO" }, + { "999999", "NOVECIENTOS NOVENTA Y NUEVE MIL NOVECIENTOS NOVENTA Y NUEVE" }, + { "1000000", "UN MILL\u00d3N" }, + { "999999999", "NOVECIENTOS NOVENTA Y NUEVE MILLONES NOVECIENTOS NOVENTA Y NUEVE MIL NOVECIENTOS NOVENTA Y NUEVE" }, + { "1000000000", "MIL MILLONES" } + }; + + static private String[][] formatWordSpanishTitle = + { + { "Ww", null, null, null, null, "spa" }, + { "0", "Cero" }, + { "1", "Uno" }, + { "2", "Dos" }, + { "3", "Tres" }, + { "4", "Cuatro" }, + { "5", "Cinco" }, + { "6", "Seise" }, + { "7", "Siete" }, + { "8", "Ocho" }, + { "9", "Nueve" }, + { "10", "Diez" }, + { "11", "Once" }, + { "12", "Doce" }, + { "13", "Trece" }, + { "14", "Catorce" }, + { "15", "Quince" }, + { "16", "Diecis\u00e9is" }, + { "17", "Diecisiete" }, + { "18", "Dieciocho" }, + { "19", "Diecinueve" }, + { "20", "Veinte" }, + { "21", "Veintiuno" }, + { "22", "Veintid\u00f3s" }, + { "23", "Veintitr\u00e9s" }, + { "24", "Veinticuatro" }, + { "25", "Veinticinco" }, + { "26", "Veintis\u00e9is" }, + { "27", "Veintisiete" }, + { "28", "Veintiocho" }, + { "29", "Veintinueve" }, + { "30", "Treinta" }, + { "31", "Treinta Y Uno" }, + { "32", "Treinta Y Dos" }, + { "40", "Cuarenta" }, + { "41", "Cuarenta Y Uno" }, + { "42", "Cuarenta Y Dos" }, + { "50", "Cincuenta" }, + { "51", "Cincuenta Y Uno" }, + { "52", "Cincuenta Y Dos" }, + { "60", "Sesenta" }, + { "61", "Sesenta Y Uno" }, + { "62", "Sesenta Y Dos" }, + { "70", "Setenta" }, + { "71", "Setenta Y Uno" }, + { "72", "Setenta Y Dos" }, + { "80", "Ochenta" }, + { "81", "Ochenta Y Uno" }, + { "82", "Ochenta Y Dos" }, + { "90", "Noventa" }, + { "91", "Noventa Y Uno" }, + { "92", "Noventa Y Dos" }, + { "99", "Noventa Y Nueve" }, + { "100", "Cien" }, + { "101", "Ciento Uno" }, + { "102", "Ciento Dos" }, + { "200", "Doscientos" }, + { "300", "Trescientos" }, + { "400", "Cuatrocientos" }, + { "500", "Quinientos" }, + { "600", "Seiscientos" }, + { "700", "Setecientos" }, + { "800", "Ochocientos" }, + { "900", "Novecientos" }, + { "999", "Novecientos Noventa Y Nueve" }, + { "1000", "Mil" }, + { "1001", "Mil Uno" }, + { "1002", "Mil Dos" }, + { "2000", "Dos Mil" }, + { "2001", "Dos Mil Uno" }, + { "100000", "Cien Mil" }, + { "100001", "Cien Mil Uno" }, + { "999999", "Novecientos Noventa Y Nueve Mil Novecientos Noventa Y Nueve" }, + { "1000000", "Un Mill\u00f3n" }, + { "999999999", "Novecientos Noventa Y Nueve Millones Novecientos Noventa Y Nueve Mil Novecientos Noventa Y Nueve" }, + { "1000000000", "Mil Millones" } + }; + + static private String[][] formatWordFrenchLower = + { + { "w", null, null, null, null, "fra" }, + { "0", "z\u00e9ro" }, + { "1", "un" }, + { "2", "deux" }, + { "3", "trois" }, + { "4", "quatre" }, + { "5", "cinq" }, + { "6", "six" }, + { "7", "sept" }, + { "8", "huit" }, + { "9", "neuf" }, + { "10", "dix" }, + { "11", "onze" }, + { "12", "douze" }, + { "13", "treize" }, + { "14", "quatorze" }, + { "15", "quinze" }, + { "16", "seize" }, + { "17", "dix-sept" }, + { "18", "dix-huit" }, + { "19", "dix-neuf" }, + { "20", "vingt" }, + { "21", "vingt et un" }, + { "22", "vingt-deux" }, + { "23", "vingt-trois" }, + { "24", "vingt-quatre" }, + { "25", "vingt-cinq" }, + { "26", "vingt-six" }, + { "27", "vingt-sept" }, + { "28", "vingt-huit" }, + { "29", "vingt-neuf" }, + { "30", "trente" }, + { "31", "trente et un" }, + { "32", "trente-deux" }, + { "40", "quarante" }, + { "41", "quarante et un" }, + { "42", "quarante-deux" }, + { "50", "cinquante" }, + { "51", "cinquante et un" }, + { "52", "cinquante-deux" }, + { "60", "soixante" }, + { "61", "soixante et un" }, + { "62", "soixante-deux" }, + { "70", "soixante-dix" }, + { "71", "soixante et onze" }, + { "72", "soixante-douze" }, + { "79", "soixante-dix-neuf" }, + { "80", "quatre-vingts" }, + { "81", "quatre-vingt-un" }, + { "82", "quatre-vingt-deux" }, + { "89", "quatre-vingt-neuf" }, + { "90", "quatre-vingt-dix" }, + { "91", "quatre-vingt-onze" }, + { "92", "quatre-vingt-douze" }, + { "99", "quatre-vingt-dix-neuf" }, + { "100", "cent" }, + { "101", "cent un" }, + { "102", "cent deux" }, + { "200", "deux cents" }, + { "201", "deux cent un" }, + { "202", "deux cent deux" }, + { "300", "trois cents" }, + { "301", "trois cent un" }, + { "400", "quatre cents" }, + { "401", "quatre cent un" }, + { "500", "cinq cents" }, + { "501", "cinq cent un" }, + { "600", "six cents" }, + { "601", "six cent un" }, + { "700", "sept cents" }, + { "701", "sept cent un" }, + { "800", "huit cents" }, + { "801", "huit cent un" }, + { "900", "neuf cents" }, + { "901", "neuf cent un" }, + { "999", "neuf cent quatre-vingt-dix-neuf" }, + { "1000", "mille" }, + { "1001", "mille un" }, + { "1002", "mille deux" }, + { "2000", "deux mille" }, + { "2001", "deux mille un" }, + { "100000", "cent mille" }, + { "100001", "cent mille un" }, + { "999999", "neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf" }, + { "1000000", "un million" }, + { "999999999", "neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf" }, + { "1000000000", "un milliard" } + }; + + static private String[][] formatWordFrenchUpper = + { + { "W", null, null, null, null, "fra" }, + { "0", "Z\u00c9RO" }, + { "1", "UN" }, + { "2", "DEUX" }, + { "3", "TROIS" }, + { "4", "QUATRE" }, + { "5", "CINQ" }, + { "6", "SIX" }, + { "7", "SEPT" }, + { "8", "HUIT" }, + { "9", "NEUF" }, + { "10", "DIX" }, + { "11", "ONZE" }, + { "12", "DOUZE" }, + { "13", "TREIZE" }, + { "14", "QUATORZE" }, + { "15", "QUINZE" }, + { "16", "SEIZE" }, + { "17", "DIX-SEPT" }, + { "18", "DIX-HUIT" }, + { "19", "DIX-NEUF" }, + { "20", "VINGT" }, + { "21", "VINGT ET UN" }, + { "22", "VINGT-DEUX" }, + { "23", "VINGT-TROIS" }, + { "24", "VINGT-QUATRE" }, + { "25", "VINGT-CINQ" }, + { "26", "VINGT-SIX" }, + { "27", "VINGT-SEPT" }, + { "28", "VINGT-HUIT" }, + { "29", "VINGT-NEUF" }, + { "30", "TRENTE" }, + { "31", "TRENTE ET UN" }, + { "32", "TRENTE-DEUX" }, + { "40", "QUARANTE" }, + { "41", "QUARANTE ET UN" }, + { "42", "QUARANTE-DEUX" }, + { "50", "CINQUANTE" }, + { "51", "CINQUANTE ET UN" }, + { "52", "CINQUANTE-DEUX" }, + { "60", "SOIXANTE" }, + { "61", "SOIXANTE ET UN" }, + { "62", "SOIXANTE-DEUX" }, + { "70", "SOIXANTE-DIX" }, + { "71", "SOIXANTE ET ONZE" }, + { "72", "SOIXANTE-DOUZE" }, + { "79", "SOIXANTE-DIX-NEUF" }, + { "80", "QUATRE-VINGTS" }, + { "81", "QUATRE-VINGT-UN" }, + { "82", "QUATRE-VINGT-DEUX" }, + { "89", "QUATRE-VINGT-NEUF" }, + { "90", "QUATRE-VINGT-DIX" }, + { "91", "QUATRE-VINGT-ONZE" }, + { "92", "QUATRE-VINGT-DOUZE" }, + { "99", "QUATRE-VINGT-DIX-NEUF" }, + { "100", "CENT" }, + { "101", "CENT UN" }, + { "102", "CENT DEUX" }, + { "200", "DEUX CENTS" }, + { "201", "DEUX CENT UN" }, + { "202", "DEUX CENT DEUX" }, + { "300", "TROIS CENTS" }, + { "301", "TROIS CENT UN" }, + { "400", "QUATRE CENTS" }, + { "401", "QUATRE CENT UN" }, + { "500", "CINQ CENTS" }, + { "501", "CINQ CENT UN" }, + { "600", "SIX CENTS" }, + { "601", "SIX CENT UN" }, + { "700", "SEPT CENTS" }, + { "701", "SEPT CENT UN" }, + { "800", "HUIT CENTS" }, + { "801", "HUIT CENT UN" }, + { "900", "NEUF CENTS" }, + { "901", "NEUF CENT UN" }, + { "999", "NEUF CENT QUATRE-VINGT-DIX-NEUF" }, + { "1000", "MILLE" }, + { "1001", "MILLE UN" }, + { "1002", "MILLE DEUX" }, + { "2000", "DEUX MILLE" }, + { "2001", "DEUX MILLE UN" }, + { "100000", "CENT MILLE" }, + { "100001", "CENT MILLE UN" }, + { "999999", "NEUF CENT QUATRE-VINGT-DIX-NEUF MILLE NEUF CENT QUATRE-VINGT-DIX-NEUF" }, + { "1000000", "UN MILLION" }, + { "999999999", "NEUF CENT QUATRE-VINGT-DIX-NEUF MILLIONS NEUF CENT QUATRE-VINGT-DIX-NEUF MILLE NEUF CENT QUATRE-VINGT-DIX-NEUF" }, + { "1000000000", "UN MILLIARD" } + }; + + static private String[][] formatWordFrenchTitle = + { + { "Ww", null, null, null, null, "fra" }, + { "0", "Z\u00e9ro" }, + { "1", "Un" }, + { "2", "Deux" }, + { "3", "Trois" }, + { "4", "Quatre" }, + { "5", "Cinq" }, + { "6", "Six" }, + { "7", "Sept" }, + { "8", "Huit" }, + { "9", "Neuf" }, + { "10", "Dix" }, + { "11", "Onze" }, + { "12", "Douze" }, + { "13", "Treize" }, + { "14", "Quatorze" }, + { "15", "Quinze" }, + { "16", "Seize" }, + { "17", "Dix-sept" }, + { "18", "Dix-huit" }, + { "19", "Dix-neuf" }, + { "20", "Vingt" }, + { "21", "Vingt Et Un" }, + { "22", "Vingt-deux" }, + { "23", "Vingt-trois" }, + { "24", "Vingt-quatre" }, + { "25", "Vingt-cinq" }, + { "26", "Vingt-six" }, + { "27", "Vingt-sept" }, + { "28", "Vingt-huit" }, + { "29", "Vingt-neuf" }, + { "30", "Trente" }, + { "31", "Trente Et Un" }, + { "32", "Trente-deux" }, + { "40", "Quarante" }, + { "41", "Quarante Et Un" }, + { "42", "Quarante-deux" }, + { "50", "Cinquante" }, + { "51", "Cinquante Et Un" }, + { "52", "Cinquante-deux" }, + { "60", "Soixante" }, + { "61", "Soixante Et Un" }, + { "62", "Soixante-deux" }, + { "70", "Soixante-dix" }, + { "71", "Soixante Et Onze" }, + { "72", "Soixante-douze" }, + { "79", "Soixante-dix-neuf" }, + { "80", "Quatre-vingts" }, + { "81", "Quatre-vingt-un" }, + { "82", "Quatre-vingt-deux" }, + { "89", "Quatre-vingt-neuf" }, + { "90", "Quatre-vingt-dix" }, + { "91", "Quatre-vingt-onze" }, + { "92", "Quatre-vingt-douze" }, + { "99", "Quatre-vingt-dix-neuf" }, + { "100", "Cent" }, + { "101", "Cent Un" }, + { "102", "Cent Deux" }, + { "200", "Deux Cents" }, + { "201", "Deux Cent Un" }, + { "202", "Deux Cent Deux" }, + { "300", "Trois Cents" }, + { "301", "Trois Cent Un" }, + { "400", "Quatre Cents" }, + { "401", "Quatre Cent Un" }, + { "500", "Cinq Cents" }, + { "501", "Cinq Cent Un" }, + { "600", "Six Cents" }, + { "601", "Six Cent Un" }, + { "700", "Sept Cents" }, + { "701", "Sept Cent Un" }, + { "800", "Huit Cents" }, + { "801", "Huit Cent Un" }, + { "900", "Neuf Cents" }, + { "901", "Neuf Cent Un" }, + { "999", "Neuf Cent Quatre-vingt-dix-neuf" }, + { "1000", "Mille" }, + { "1001", "Mille Un" }, + { "1002", "Mille Deux" }, + { "2000", "Deux Mille" }, + { "2001", "Deux Mille Un" }, + { "100000", "Cent Mille" }, + { "100001", "Cent Mille Un" }, + { "999999", "Neuf Cent Quatre-vingt-dix-neuf Mille Neuf Cent Quatre-vingt-dix-neuf" }, + { "1000000", "Un Million" }, + { "999999999", "Neuf Cent Quatre-vingt-dix-neuf Millions Neuf Cent Quatre-vingt-dix-neuf Mille Neuf Cent Quatre-vingt-dix-neuf" }, + { "1000000000", "Un Milliard" } + }; + + /** + * Tests decimal from latin script. + * @throws Exception if the test fails + */ + @Test + public void testFormatDecimal() throws Exception { + performConversions ( formatDecimal ); + performConversions ( formatDecimalPadded ); + performConversions ( formatDecimalGrouped ); + performConversions ( formatDecimalGroupedPadded ); + } + + /** + * Tests decimal from arabic script. + * @throws Exception if the test fails + */ + @Test + public void testFormatDecimalArabic() throws Exception { + performConversions ( formatDecimalArabic ); + performConversions ( formatDecimalArabicPadded ); + performConversions ( formatDecimalArabicGrouped ); + performConversions ( formatDecimalArabicGroupedPadded ); + } + + /** + * Tests decimal from thai script. + * @throws Exception if the test fails + */ + @Test + public void testFormatDecimalThai() throws Exception { + performConversions ( formatDecimalThai ); + performConversions ( formatDecimalThaiPadded ); + } + + /** + * Tests roman numbers. + * @throws Exception if the test fails + */ + @Test + public void testFormatRoman() throws Exception { + performConversions ( formatRomanLower ); + performConversions ( formatRomanUpper ); + performConversions ( formatRomanLargeLower ); + performConversions ( formatRomanLargeUpper ); + performConversions ( formatRomanNumberFormsLower ); + performConversions ( formatRomanNumberFormsUpper ); + } + + /** + * Tests latin alphabetic sequence numerals. + * @throws Exception if the test fails + */ + @Test + public void testAlphabeticLatin() throws Exception { + performConversions ( formatAlphabeticLatinLower ); + performConversions ( formatAlphabeticLatinUpper ); + } + + /** + * Tests arabic alphabetic sequence numerals. + * @throws Exception if the test fails + */ + @Test + public void testAlphabeticArabic() throws Exception { + performConversions ( formatAlphabeticArabicHijai ); + performConversions ( formatAlphabeticArabicAbjadi ); + } + + /** + * Tests hebrew alphabetic sequence numerals. + * @throws Exception if the test fails + */ + @Test + public void testAlphabeticHebrew() throws Exception { + performConversions ( formatAlphabeticHebrew ); + } + + /** + * Tests latin alphabetic sequence numerals. + * @throws Exception if the test fails + */ + @Test + public void testAlphabeticThai() throws Exception { + performConversions ( formatAlphabeticThai ); + } + + /** + * Tests arabic numerals.. + * @throws Exception if the test fails + */ + @Test + public void testNumeralArabic() throws Exception { + performConversions ( formatNumeralArabicAbjadi ); + } + + /** + * Tests hebrew numerals. + * @throws Exception if the test fails + */ + @Test + public void testNumeralHebrew() throws Exception { + performConversions ( formatNumeralHebrewGematria ); + } + + /** + * Tests english word numerals. + * @throws Exception if the test fails + */ + @Test + public void testWordEnglish() throws Exception { + performConversions ( formatWordEnglishLower ); + performConversions ( formatWordEnglishUpper ); + performConversions ( formatWordEnglishTitle ); + } + + /** + * Tests spanish word numerals. + * @throws Exception if the test fails + */ + @Test + public void testWordSpanish() throws Exception { + performConversions ( formatWordSpanishLower ); + performConversions ( formatWordSpanishUpper ); + performConversions ( formatWordSpanishTitle ); + } + + /** + * Tests french word numerals. + * @throws Exception if the test fails + */ + @Test + public void testWordFrench() throws Exception { + performConversions ( formatWordFrenchLower ); + performConversions ( formatWordFrenchUpper ); + performConversions ( formatWordFrenchTitle ); + } + + /** + * Perform conversions according to test specification. + * @param ts test specification + */ + private void performConversions ( String[][] ts ) { + assert ts != null; + assert ts.length >= 2; + String[] args = ts[0]; + assert args != null; + assert args.length > 0; + String format = args[0]; + assert format.length() > 0; + char groupingSeparator; + if ( args.length > 1 ) { + String s = args[1]; + if ( ( s != null ) && ( s.length() > 0 ) ) { + groupingSeparator = s.charAt(0); + } else { + groupingSeparator = 0; + } + } else { + groupingSeparator = 0; + } + int groupingSize; + if ( args.length > 2 ) { + String s = args[2]; + if ( ( s != null ) && ( s.length() > 0 ) ) { + groupingSize = Integer.parseInt ( s ); + } else { + groupingSize = 0; + } + } else { + groupingSize = 0; + } + int letterValue; + if ( args.length > 3 ) { + String s = args[3]; + if ( ( s != null ) && ( s.length() > 0 ) ) { + s = s.toLowerCase(); + if ( s.equals("alphabetic") ) { + letterValue = NumberConverter.LETTER_VALUE_ALPHABETIC; + } else if ( s.equals("traditional") ) { + letterValue = NumberConverter.LETTER_VALUE_TRADITIONAL; + } else { + letterValue = 0; + } + } else { + letterValue = 0; + } + } else { + letterValue = 0; + } + String features; + if ( args.length > 4 ) { + String s = args[4]; + if ( ( s != null ) && ( s.length() > 0 ) ) { + features = s; + } else { + features = null; + } + } else { + features = null; + } + String language; + if ( args.length > 5 ) { + String s = args[5]; + if ( ( s != null ) && ( s.length() > 0 ) ) { + language = s; + } else { + language = null; + } + } else { + language = null; + } + String country; + if ( args.length > 6 ) { + String s = args[6]; + if ( ( s != null ) && ( s.length() > 0 ) ) { + country = s; + } else { + country = null; + } + } else { + country = null; + } + NumberConverter nc = new NumberConverter ( format, groupingSeparator, groupingSize, letterValue, features, language, country ); + for ( int i = 1, nt = ts.length; i < nt; i++ ) { + String[] sa = ts[i]; + assert sa != null; + assert sa.length >= 2; + List<Long> numbers = new ArrayList<Long>(); + for ( int k = 0, nn = sa.length - 1; k < nn; k++ ) { + String s = sa[k]; + numbers.add ( Long.valueOf ( s ) ); + } + String expected = sa [ sa.length - 1 ]; + String actual = nc.convert ( numbers ); + assertEquals ( expected, actual ); + } + } + +}
diff --git a/test/java/org/apache/fop/util/PDFNumberTestCase.java b/test/java/org/apache/fop/util/PDFNumberTestCase.java index 0f2fed1..73eb6fd 100644 --- a/test/java/org/apache/fop/util/PDFNumberTestCase.java +++ b/test/java/org/apache/fop/util/PDFNumberTestCase.java
@@ -19,19 +19,22 @@ package org.apache.fop.util; -import org.apache.fop.pdf.PDFNumber; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; -import junit.framework.TestCase; +import org.apache.fop.pdf.PDFNumber; +import org.junit.Test; /** * This test tests PDFNumber's doubleOut() methods. */ -public class PDFNumberTestCase extends TestCase { +public class PDFNumberTestCase { /** * Tests PDFNumber.doubleOut(). * @throws Exception if the test fails */ + @Test public void testDoubleOut1() throws Exception { //Default is 6 decimal digits assertEquals("0", PDFNumber.doubleOut(0.0f)); @@ -51,6 +54,7 @@ * Tests PDFNumber.doubleOut(). * @throws Exception if the test fails */ + @Test public void testDoubleOut2() throws Exception { //4 decimal digits in this case assertEquals("0", PDFNumber.doubleOut(0.0f, 4)); @@ -66,6 +70,7 @@ * Tests PDFNumber.doubleOut(). * @throws Exception if the test fails */ + @Test public void testDoubleOut3() throws Exception { //0 decimal digits in this case assertEquals("0", PDFNumber.doubleOut(0.0f, 0)); @@ -79,6 +84,7 @@ * Tests PDFNumber.doubleOut(). Special cases (former bugs). * @throws Exception if the test fails */ + @Test public void testDoubleOut4() throws Exception { double d = Double.parseDouble("5.7220458984375E-6"); assertEquals("0.000006", PDFNumber.doubleOut(d)); @@ -90,6 +96,7 @@ * Tests PDFNumber.doubleOut(). Tests for wrong parameters. * @throws Exception if the test fails */ + @Test public void testDoubleOutWrongParameters() throws Exception { try { PDFNumber.doubleOut(0.1f, -1);
diff --git a/test/java/org/apache/fop/util/XMLResourceBundleTestCase.java b/test/java/org/apache/fop/util/XMLResourceBundleTestCase.java index bc201bf..26cfa44 100644 --- a/test/java/org/apache/fop/util/XMLResourceBundleTestCase.java +++ b/test/java/org/apache/fop/util/XMLResourceBundleTestCase.java
@@ -19,17 +19,21 @@ package org.apache.fop.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests for XMLResourceBundle. */ -public class XMLResourceBundleTestCase extends TestCase { +public class XMLResourceBundleTestCase { + @Test public void testWithValidFile() throws Exception { ResourceBundle bundle = XMLResourceBundle.getXMLBundle( getClass().getName(), Locale.ENGLISH, getClass().getClassLoader()); @@ -47,6 +51,7 @@ assertEquals("Untranslatable", bundleDE.getString("untranslatable")); } + @Test public void testWithInvalidFile() throws Exception { try { ResourceBundle bundle = XMLResourceBundle.getXMLBundle(
diff --git a/test/java/org/apache/fop/util/XMLUtilTestCase.java b/test/java/org/apache/fop/util/XMLUtilTestCase.java index 3e86b97..4c1b999 100644 --- a/test/java/org/apache/fop/util/XMLUtilTestCase.java +++ b/test/java/org/apache/fop/util/XMLUtilTestCase.java
@@ -19,15 +19,19 @@ package org.apache.fop.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + import java.util.Locale; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests {@link XMLUtil}. */ -public class XMLUtilTestCase extends TestCase { +public class XMLUtilTestCase { + @Test public void testLocaleToRFC3066() throws Exception { assertNull(XMLUtil.toRFC3066(null)); assertEquals("en", XMLUtil.toRFC3066(new Locale("en"))); @@ -35,6 +39,7 @@ assertEquals("en-US", XMLUtil.toRFC3066(new Locale("EN", "us"))); } + @Test public void testRFC3066ToLocale() throws Exception { assertNull(XMLUtil.convertRFC3066ToLocale(null)); assertNull(XMLUtil.convertRFC3066ToLocale(""));
diff --git a/test/java/org/apache/fop/visual/BatchDiffer.java b/test/java/org/apache/fop/visual/BatchDiffer.java index 08ac886..0a0b6e1 100644 --- a/test/java/org/apache/fop/visual/BatchDiffer.java +++ b/test/java/org/apache/fop/visual/BatchDiffer.java
@@ -44,7 +44,7 @@ import org.apache.xmlgraphics.image.writer.ImageWriterUtil; -import org.apache.fop.layoutengine.LayoutEngineTestSuite; +import org.apache.fop.layoutengine.LayoutEngineTestUtils; /** * This class is used to visually diff bitmap images created through various sources. @@ -164,7 +164,7 @@ IOFileFilter filter = new SuffixFileFilter(new String[] {".xml", ".fo"}); //Same filtering as in layout engine tests if (cfg.getChild("filter-disabled").getValueAsBoolean(true)) { - filter = LayoutEngineTestSuite.decorateWithDisabledList(filter); + filter = LayoutEngineTestUtils.decorateWithDisabledList(filter); } String manualFilter = cfg.getChild("manual-filter").getValue(null); if (manualFilter != null) {
diff --git a/test/layoutengine/standard-testcases/page-sequence-force-page-count-odd.xml b/test/layoutengine/standard-testcases/page-sequence-force-page-count-odd.xml new file mode 100644 index 0000000..d75f9ba --- /dev/null +++ b/test/layoutengine/standard-testcases/page-sequence-force-page-count-odd.xml
@@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. +--> +<!-- $Id$ --> +<testcase> + <info> + <p> + This checks that when force-page-count that the last simple- + page-master is used when a single page overflows to a second + page and the page count is forced to odd. + </p> + </info> + <variables> + <img>../../resources/images/bgimg300dpi.jpg</img> + </variables> + <fo> +<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master master-name="simple-first" page-width="210mm" page-height="297mm" margin-bottom="0mm" margin-right="0mm" margin-top="0mm" margin-left="0mm"> + <fo:region-body region-name="body"/> + <fo:region-before region-name="first-before" extent="100mm"/> + <fo:region-after region-name="first-after" extent="23mm"/> + </fo:simple-page-master> + <fo:simple-page-master master-name="simple-first-space" page-width="210mm" page-height="297mm" margin-bottom="0mm" margin-right="0mm" margin-top="0mm" margin-left="0mm"> + <fo:region-body margin-bottom="115mm" margin-right="20mm" margin-top="0mm" margin-left="23mm" region-name="body"/> + <fo:region-before background-position-horizontal="150mm" background-repeat="no-repeat" background-position-vertical="10mm" region-name="first-before" extent="70mm"/> + <fo:region-after region-name="first-after-space" extent="110mm"/> + </fo:simple-page-master> + <fo:simple-page-master master-name="simple-rest" page-width="210mm" page-height="297mm" margin-bottom="0mm" margin-right="0mm" margin-top="0mm" margin-left="0mm"> + <fo:region-body background-color="green" margin-bottom="25mm" margin-right="20mm" margin-top="70mm" margin-left="23mm" region-name="body"/> + <fo:region-before background-position-horizontal="150mm" background-repeat="no-repeat" background-position-vertical="10mm" region-name="rest-before" extent="70mm"/> + <fo:region-after region-name="rest-after" extent="23mm"/> + </fo:simple-page-master> + <fo:simple-page-master master-name="simple-last" page-width="210mm" page-height="297mm" margin-bottom="0mm" margin-right="0mm" margin-top="0mm" margin-left="0mm"> + <fo:region-body background-color="blue" margin-top="70mm" margin-bottom="115mm" margin-right="22mm" margin-left="25mm" region-name="body"/> + <fo:region-before background-position-horizontal="150mm" background-repeat="no-repeat" background-position-vertical="10mm" region-name="last-before" extent="70mm"/> + <fo:region-after extent="111mm" region-name="last-after"/> + </fo:simple-page-master> +<fo:page-sequence-master master-name="psm"> + <fo:repeatable-page-master-alternatives> + <fo:conditional-page-master-reference page-position="only" master-reference="simple-first-space"/> + <fo:conditional-page-master-reference page-position="first" master-reference="simple-first"/> + <fo:conditional-page-master-reference page-position="rest" master-reference="simple-rest"/> + <fo:conditional-page-master-reference page-position="last" master-reference="simple-last"/> + </fo:repeatable-page-master-alternatives> + </fo:page-sequence-master> + </fo:layout-master-set> + <fo:page-sequence format="1" force-page-count="odd" master-reference="psm"> + <fo:static-content flow-name="first-before"> + <fo:block> + </fo:block> + </fo:static-content> + <fo:static-content flow-name="first-after-space"> + <fo:block page-break-before="always" page-break-after="always"> + </fo:block> + </fo:static-content> + <fo:static-content flow-name="first-after"> + <fo:block margin-right="20mm" margin-left="23mm"> + </fo:block> + </fo:static-content> + <fo:static-content flow-name="rest-before"> + <fo:block> + </fo:block> + </fo:static-content> + <fo:static-content flow-name="last-before"> + <fo:block> + </fo:block> + </fo:static-content> + <fo:static-content flow-name="rest-after"> + <fo:block margin-right="20mm" margin-left="23mm"> + </fo:block> + </fo:static-content> + <fo:static-content flow-name="last-after"> + <fo:block> + </fo:block> + </fo:static-content> + <fo:flow flow-name="body"> + <fo:block-container> + <fo:block margin-top="88mm"> + <fo:block space-after="120mm">line 1</fo:block> + <fo:block space-after="60mm">line 2</fo:block> + </fo:block> + </fo:block-container> + </fo:flow> + </fo:page-sequence> +</fo:root> + </fo> + <checks> + <eval expected="simple-first" xpath="//pageViewport[1]/@simple-page-master-name"/> + <eval expected="simple-rest" xpath="//pageViewport[2]/@simple-page-master-name"/> + <eval expected="simple-last" xpath="//pageViewport[3]/@simple-page-master-name"/> + <eval expected="3" xpath="count(//pageViewport)"/> + </checks> +</testcase>
diff --git a/test/layoutengine/standard-testcases/region-body_column-count_1_writing-mode_rl.xml b/test/layoutengine/standard-testcases/region-body_column-count_1_writing-mode_rl.xml new file mode 100644 index 0000000..8207702 --- /dev/null +++ b/test/layoutengine/standard-testcases/region-body_column-count_1_writing-mode_rl.xml
@@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. +--> +<!-- $Id$ --> +<testcase> + <info> + <p> + This test checks multi-column documents with right-to-left writing mode. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg"> + <fo:layout-master-set> + <fo:simple-page-master master-name="normal" page-width="360pt" page-height="4in"> + <fo:region-body column-count="2" column-gap="20pt"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="normal" white-space-collapse="true" writing-mode="rl"> + <fo:flow flow-name="xsl-region-body"> + <fo:block>line1</fo:block> + <fo:block>line2</fo:block> + <fo:block background-color="orange">line3</fo:block> + <fo:block>line4</fo:block> + <fo:block>line5</fo:block> + <fo:block>line6</fo:block> + <fo:block>line7</fo:block> + <fo:block>line8</fo:block> + <fo:block>line9</fo:block> + <fo:block>line10</fo:block> + <fo:block>line11</fo:block> + <fo:block>line12</fo:block> + <fo:block>line13</fo:block> + <fo:block>line14</fo:block> + <fo:block>line15</fo:block> + <fo:block>line16</fo:block> + <fo:block>line17</fo:block> + <fo:block>line18</fo:block> + <fo:block>line19</fo:block> + <fo:block>line20</fo:block> + <fo:block>line21</fo:block> + <fo:block>line22</fo:block> + <fo:block>line23</fo:block> + <fo:block>line24</fo:block> + <fo:block>line25</fo:block> + <fo:block>line26</fo:block> + <fo:block>line27</fo:block> + <fo:block>line28</fo:block> + <fo:block>line29</fo:block> + <fo:block>line30</fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="1" xpath="count(//pageViewport)"/> + + <eval expected="1" xpath="count(//regionBody/mainReference/span)"/> + <!-- room for 20 lines --> + <eval expected="20" xpath="//regionBody/mainReference/span/@bpd div 14400"/> + <!-- bidi level 1 --> + <eval expected="1" xpath="//regionBody/mainReference/span/@level"/> + + <!-- 2 columns --> + <eval expected="2" xpath="count(//regionBody/mainReference/span/flow)"/> + <!-- 20 lines in first column --> + <eval expected="20" xpath="count(//regionBody/mainReference/span/flow[1]/block)"/> + <eval expected="20" xpath="//regionBody/mainReference/span/flow[1]/@bpd div 14400"/> + <!-- 10 lines in second column --> + <eval expected="10" xpath="count(//regionBody/mainReference/span/flow[2]/block)"/> + <eval expected="10" xpath="//regionBody/mainReference/span/flow[2]/@bpd div 14400"/> + </checks> +</testcase>
diff --git a/test/layoutengine/standard-testcases/region-body_column-count_2_writing-mode_rl.xml b/test/layoutengine/standard-testcases/region-body_column-count_2_writing-mode_rl.xml new file mode 100644 index 0000000..b6ac195 --- /dev/null +++ b/test/layoutengine/standard-testcases/region-body_column-count_2_writing-mode_rl.xml
@@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. +--> +<!-- $Id$ --> +<testcase> + <info> + <p> + This test checks multi-column documents with right-to-left writing mode. Normal multi-column document breaking over more than one page. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg"> + <fo:layout-master-set> + <fo:simple-page-master master-name="normal" page-width="360pt" page-height="2in"> + <fo:region-body column-count="2" column-gap="20pt"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="normal" white-space-collapse="true" writing-mode="rl"> + <fo:flow flow-name="xsl-region-body"> + <fo:block>line1</fo:block> + <fo:block>line2</fo:block> + <fo:block background-color="orange">line3</fo:block> + <fo:block>line4</fo:block> + <fo:block>line5</fo:block> + <fo:block>line6</fo:block> + <fo:block>line7</fo:block> + <fo:block>line8</fo:block> + <fo:block>line9</fo:block> + <fo:block>line10</fo:block> + <fo:block>line11</fo:block> + <fo:block>line12</fo:block> + <fo:block>line13</fo:block> + <fo:block>line14</fo:block> + <fo:block>line15</fo:block> + <fo:block>line16</fo:block> + <fo:block>line17</fo:block> + <fo:block>line18</fo:block> + <fo:block>line19</fo:block> + <fo:block>line20</fo:block> + <fo:block>line21</fo:block> + <fo:block>line22</fo:block> + <fo:block>line23</fo:block> + <fo:block>line24</fo:block> + <fo:block>line25</fo:block> + <fo:block>line26</fo:block> + <fo:block>line27</fo:block> + <fo:block>line28</fo:block> + <fo:block>line29</fo:block> + <fo:block>line30</fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="2" xpath="count(//pageViewport)"/> + + <!-- *** page 1 *** --> + <eval expected="1" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span)"/> + <!-- room for 10 lines --> + <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/@bpd div 14400"/> + <!-- bidi level 1 --> + <eval expected="1" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/@level"/> + + <!-- 2 columns --> + <eval expected="2" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow)"/> + <!-- 10 lines in first column --> + <eval expected="10" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[1]/block)"/> + <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[1]/@bpd div 14400"/> + <!-- 10 lines in second column --> + <eval expected="10" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[2]/block)"/> + <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[2]/@bpd div 14400"/> + + <!-- *** page 2 *** --> + <eval expected="1" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span)"/> + <!-- room for 10 lines --> + <eval expected="10" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/@bpd div 14400"/> + <!-- bidi level 1 --> + <eval expected="1" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/@level"/> + + <!-- 2 columns --> + <eval expected="2" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow)"/> + <!-- 10 lines in first column --> + <eval expected="10" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[1]/block)"/> + <eval expected="10" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[1]/@bpd div 14400"/> + <!-- 0 lines in second column --> + <eval expected="0" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[2]/block)"/> + <eval expected="0" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[2]/@bpd div 14400"/> + </checks> +</testcase>
diff --git a/test/resources/complexscripts/arab/data/arab-001-f0.ser b/test/resources/complexscripts/arab/data/arab-001-f0.ser new file mode 100644 index 0000000..4394ccb --- /dev/null +++ b/test/resources/complexscripts/arab/data/arab-001-f0.ser Binary files differ
diff --git a/test/resources/complexscripts/arab/data/arab-001-f1.ser b/test/resources/complexscripts/arab/data/arab-001-f1.ser new file mode 100644 index 0000000..ce626a9 --- /dev/null +++ b/test/resources/complexscripts/arab/data/arab-001-f1.ser Binary files differ
diff --git a/test/resources/complexscripts/arab/data/arab-001-f2.ser b/test/resources/complexscripts/arab/data/arab-001-f2.ser new file mode 100644 index 0000000..ea2d179 --- /dev/null +++ b/test/resources/complexscripts/arab/data/arab-001-f2.ser Binary files differ
diff --git a/test/resources/complexscripts/arab/data/arab-001-f3.ser b/test/resources/complexscripts/arab/data/arab-001-f3.ser new file mode 100644 index 0000000..a0b4982 --- /dev/null +++ b/test/resources/complexscripts/arab/data/arab-001-f3.ser Binary files differ
diff --git a/test/resources/complexscripts/arab/data/arab-001.txt b/test/resources/complexscripts/arab/data/arab-001.txt new file mode 100644 index 0000000..78772c6 --- /dev/null +++ b/test/resources/complexscripts/arab/data/arab-001.txt
@@ -0,0 +1,85508 @@ +ءامنوا +آ +آب +آباء +آباءها +آباؤها +آباؤهم +آبائنا +آبائهم +آباد +آبار +آباراً +آبه +آتاك +آتاكم +آتت +آتي +آتية +آتيتم +آتيك +آثار +آثارا +آثاراً +آثارك +آثارمقلدة +آثاره +آثارها +آثارهم +آثاري +آثارًا +آثر +آثرت +آثـــار +آجلاً +آجلة +آحينية +آخذ +آخذا +آخذة +آخذه +آخذها +آخذين +آخر +آخرا +آخران +آخراً +آخرة +آخرمسرحيات +آخره +آخرها +آخرهم +آخرهما +آخرهن +آخرون +آخرى +آخرين +آخـر +آداب +آدابا +آدابنا +آدابه +آدامز +آدب +آدم +آدمية +آدمين +آذان +آذاناً +آذاننا +آذانها +آذانهم +آر +آراء +آراءهم +آراؤه +آراؤهم +آرائه +آرائها +آرائهم +آرائي +آراب +آرثر +آرمسترونج +آرنست +آريوس +آزوا +آسرا +آسرتين +آسرين +آسريه +آسف +آسفا +آسي +آسيا +آسيوي +آسيوية +آشلى +آشلي +آشور +آفات +آفاق +آفاقاً +آفاقه +آفاقًا +آفة +آقسنقر +آكد +آكل +آكلاً +آل +آلائه +آلات +آلاسكا +آلاف +آلافًا +آلام +آلامه +آلامها +آلان +آلة +آلت +آلته +آلف +آلمته +آلنسباخ +آله +آلهة +آلهتي +آلون +آلى +آلي +آليا +آليات +آلياته +آلياً +آلية +آليسندرو +آليَّة +آمال +آمالنا +آماله +آمالها +آمالهم +آمالي +آمر +آمرة +آمـن +آمل +آملاً +آملين +آمن +آمنا +آمناً +آمنة +آمنت +آمنوا +آمنًا +آمون +آمين +آمَنُوا +آمِنوا +آن +آنئذ +آنا +آناء +آند +آنذاك +آنس +آنفا +آنفاً +آنفة +آنه +آنيٌّ +آنّا +آه +آهٍ +آهْ +آوانا +آي +آيات +آياتا +آياته +آيار +آية +آيت +آيرس +آيزو +آيس +آيل +آيلة +آيللي +آينشتين +أ +أأ +أأعيد +أأنت +أؤكد +أؤمن +أؤمُّ +أئمة +أب +أبا +أبابا +أبابيل +أباد +أبادئها +أبادت +أبادله +أبادي +أبادير +أباريق +أباطيل +أباع +أباك +أبان +أبانا +أباه +أباها +أباً +أبت +أبتدع +أبتسم +أبتعد +أبتكر +أبتلع +أبجد +أبجديات +أبجدية +أبجديتهم +أبجديًا +أبحاث +أبحاثا +أبحاثك +أبحاثه +أبحاثها +أبحاثهم +أبحاثي +أبحث +أبحر +أبحرت +أبحرنا +أبخرة +أبدأ +أبدا +أبدانهن +أبداها +أبداً +أبدت +أبدد +أبدع +أبدعت +أبدعتها +أبدعنا +أبدلها +أبدو +أبدى +أبدي +أبديته +أبدًا +أبذل +أبذلها +أبراج +أبراجها +أبراجهم +أبراص +أبراهام +أبرد +أبرز +أبرزت +أبرزها +أبرزهم +أبرع +أبرم +أبرمت +أبرهة +أبرهن +أبريل +أبرّر +أبسط +أبسطها +أبشع +أبصر +أبصرنا +أبطأ +أبطال +أبطالك +أبطاله +أبطالها +أبطالهم +أبطل +أبعاد +أبعادا +أبعاده +أبعادها +أبعث +أبعد +أبعدت +أبعدتها +أبقار +أبقراط +أبقى +أبكتني +أبكر +أبكم +أبكوت +أبكي +أبلر +أبلوا +أبن +أبناء +أبناءنا +أبناءه +أبناءها +أبناءهم +أبناءهما +أبناءهن +أبناءِ +أبناؤكم +أبناؤنا +أبناؤه +أبناؤها +أبناؤهم +أبنائك +أبنائنا +أبنائه +أبنائها +أبنائهم +أبنائهما +أبنائي +أبنية +أبنيته +أبنيتها +أبها +أبهة +أبهى +أبو +أبوا +أبواب +أبوابا +أبواباً +أبوابه +أبوابها +أبواق +أبواه +أبواي +أبوبكر +أبوته +أبوح +أبورتي +أبورشدي +أبوسالم +أبوسيف +أبوشنب +أبوظبي +أبوعبدالرحمن +أبوعبدالله +أبوعمر +أبوك +أبوللو +أبولو +أبولّلو +أبولُّلو +أبونا +أبوه +أبوها +أبوي +أبويه +أبويّ +أبى +أبي +أبيات +أبياتا +أبياتها +أبيب +أبيت +أبيض +أبيع +أبيك +أبين +أبينا +أبيه +أبيها +أبيهم +أبيْتِ +أبًا +أبَى +أتأثر +أتأرجح +أتألم +أتأمل +أتابع +أتابك +أتاتوركية +أتاح +أتاحت +أتاحها +أتاني +أتاه +أتباع +أتباعه +أتباعها +أتبع +أتبعه +أتبناها +أتبنّ +أتبين +أتبينه +أتبينها +أتت +أتتبع +أتتبعها +أتجاسر +أتجاوزها +أتجه +أتجول +أتحبون +أتحتاجان +أتحداها +أتحدث +أتحدى +أتحدّث +أتحرر +أتحرق +أتحرك +أتحلى +أتحمل +أتحمّله +أتحول +أتحين +أتخذ +أتخفي +أتخلص +أتخيل +أتدخل +أتدرج +أتدرون +أتذكر +أتذكره +أتذكرها +أترابه +أتراجع +أتراحاسيس +أتراك +أترالكييو +أتراني +أتراهما +أترجم +أترجمه +أترجمها +أتردد +أتردّد +أترقب +أترك +أتركه +أتركها +أتريد +أتريدني +أتزعزع +أتزوج +أتساءل +أتسمع +أتش +أتشبث +أتشرّد +أتصدق +أتصدقين +أتصرف +أتصـرّف +أتصفح +أتصنعها +أتصور +أتصوّر +أتطلع +أتطلَّع +أتظن +أتعامل +أتعب +أتعبت +أتعذب +أتعرض +أتعرف +أتعرفين +أتعس +أتعسني +أتعـفّن +أتعلق +أتعلم +أتعلمها +أتعلمين +أتعود +أتعودها +أتفرج +أتفرّس +أتفهم +أتفوه +أتقاضي +أتقاكم +أتقدم +أتقصى +أتقصّى +أتقمّص +أتقن +أتقنوا +أتقول +أتقولين +أتقيأ +أتقياء +أتكأ +أتكاسل +أتكلم +أتلانتا +أتلانتيك +أتلصص +أتلفت +أتلق +أتلقى +أتم +أتمت +أتمثل +أتمرن +أتمرّس +أتمزق +أتمسك +أتمشى +أتمـــناها +أتمكن +أتمنى +أتمهل +أتناول +أتنزه +أتنصت +أتنفس +أتنقل +أتنهد +أتوا +أتواصل +أتوبيسات +أتوجه +أتوسل +أتوق +أتوقع +أتوقعه +أتوقعها +أتوقف +أتونها +أتوه +أتوهمها +أتى +أتيت +أتيتك +أتيته +أتيح +أتيحت +أتيليه +أتينا +أتُراها +أتْبعْت +أثابر +أثاث +أثاثها +أثاثًا +أثار +أثارا +أثارت +أثارتا +أثارته +أثارتها +أثاره +أثارها +أثبت +أثبتت +أثبتن +أثبتنا +أثبته +أثبتو +أثبتوا +أثبـتت +أثداء +أثر +أثرا +أثراً +أثرت +أثره +أثرها +أثرهم +أثروا +أثرى +أثري +أثريا +أثرياء +أثرياؤه +أثرية +أثريتها +أثريون +أثريين +أثريًا +أثرٌ +أثقال +أثقالا +أثقل +أثقلته +أثكلني +أثمانها +أثمر +أثمرت +أثمرته +أثمن +أثناء +أثناءها +أثنى +أثواباً +أثوابها +أثوابهم +أثير +أثيرت +أثينا +أثيوب +أثيوبيا +أثّرا +أثَّر +أجاب +أجابا +أجابت +أجابتها +أجابني +أجابه +أجابها +أجابهم +أجاثا +أجاد +أجادلهم +أجادها +أجازاتهم +أجازت +أجازته +أجانب +أجب +أجبت +أجبته +أجبر +أجبرت +أجبرتني +أجبرته +أجبها +أجتر +أجترحه +أجج +أجحدني +أجد +أجداد +أجدادنا +أجداده +أجدادهم +أجدادي +أجدت +أجدد +أجدر +أجدني +أجده +أجدها +أجدهم +أجدى +أجدُني +أجر +أجرؤ +أجرا +أجراء +أجراس +أجراه +أجراها +أجراً +أجرة +أجرت +أجرتك +أجرته +أجرتها +أجره +أجرهم +أجروها +أجرى +أجري +أجريت +أجريته +أجريتها +أجرينا +أجريناها +أجزئ +أجزاء +أجزاءها +أجزاءً +أجزائه +أجزائها +أجس +أجساد +أجسادنا +أجسادها +أجسادهم +أجسادهن +أجسام +أجسامنا +أجسامها +أجسامهم +أجسّدها +أجعل +أجعله +أجعلها +أجفان +أجفاننا +أجفانهم +أجفف +أجفلت +أجل +أجلب +أجلبه +أجلس +أجلسني +أجلك +أجله +أجلها +أجلهم +أجلى +أجلي +أجمع +أجمعت +أجمعين +أجمل +أجمله +أجملها +أجملِ +أجناس +أجناسهم +أجنبي +أجنبيا +أجنبية +أجنة +أجنحة +أجنحتها +أجنحـة +أجندة +أجندتهما +أجهدت +أجهز +أجهزة +أجهزتنا +أجهزته +أجهزتها +أجهزتهم +أجهضت +أجهضته +أجواء +أجوائه +أجوبة +أجودهما +أجور +أجوف +أجيء +أجيال +أجيالا +أجيالنا +أجيالهم +أجيب +أجيبي +أجيد +أجير +أجيراً +أجينور +أجّجتها +أجّل +أجَّلت +أحا +أحابي +أحادي +أحادية +أحاديث +أحاديثه +أحاديثي +أحاديّ +أحاذر +أحاسيس +أحاسيسه +أحاسيسها +أحاسيسي +أحاط +أحاطت +أحافظ +أحافير +أحاكم +أحال +أحالت +أحالته +أحاول +أحب +أحبائه +أحبابي +أحبالي +أحباناً +أحببت +أحببته +أحببتها +أحببتهم +أحببنا +أحبت +أحبتني +أحبكم +أحبه +أحبها +أحبوا +أحبّ +أحبَّ +أحتاج +أحتال +أحتراماً +أحترق +أحترم +أحتضن +أحتفظ +أحتويها +أحثكم +أحجار +أحجارها +أحجام +أحجامها +أحجبة +أحجمت +أحد +أحدا +أحداث +أحداثه +أحداثها +أحداثهما +أحداً +أحدث +أحدثت +أحدثته +أحدثك +أحدثن +أحدثه +أحدثها +أحدثوا +أحدده +أحددها +أحدق +أحدكم +أحدنا +أحدها +أحدهم +أحدهما +أحدًا +أحدٌ +أحدٍ +أحدَ +أحدِ +أحذرهم +أحذية +أحذيتهما +أحراج +أحرار +أحرارا +أحراش +أحرجتني +أحرز +أحرزت +أحرزته +أحرزناها +أحرزه +أحرص +أحرف +أحرفاً +أحرق +أحرقت +أحرك +أحرونوت +أحزابا +أحزان +أحزمة +أحزن +أحزنتني +أحس +أحسا +أحساسي +أحسب +أحست +أحسد +أحسست +أحسسته +أحسسنا +أحسن +أحسنت +أحسنتَ +أحسنها +أحسنوا +أحسنّا +أحسها +أحسّ +أحسَّت +أحشاء +أحشاءه +أحشائه +أحشائها +أحصاها +أحصر +أحصل +أحصنة +أحصي +أحضان +أحضانه +أحضانها +أحضر +أحضرت +أحضره +أحضرها +أحضرهم +أحضروا +أحط +أحطاب +أحطابها +أحطم +أحظى +أحـد +أحفاد +أحفاده +أحفادها +أحفادهم +أحفظ +أحفظه +أحفل +أحفورة +أحق +أحقاب +أحقق +أحقية +أحقيه +أحكام +أحكاما +أحكامه +أحكامها +أحكامًا +أحكم +أحكمت +أحكي +أحكيها +أحلام +أحلاماً +أحلامك +أحلامه +أحلامهم +أحلامي +أحلاميه +أحلاها +أحلت +أحلم +أحلمُ +أحلى +أحلي +أحماض +أحماله +أحمد +أحمر +أحمس +أحمـّل +أحمق +أحمل +أحمله +أحملها +أحملهم +أحميها +أحنافا +أحنه +أحنُّ +أحواض +أحواضهم +أحوال +أحوالنا +أحواله +أحوالها +أحوالهم +أحوالي +أحوج +أحولها +أحيا +أحياء +أحيائها +أحيان +أحيانا +أحياناً +أحيانًا +أحياه +أحيد +أحيدوس +أحيرام +أحيط +أحيل +أحيلكم +أحييت +أخ +أخا +أخاديدا +أخاذ +أخاطب +أخاطبها +أخاف +أخافني +أخافه +أخاك +أخال +أخالف +أخاه +أخاها +أخبار +أخباراً +أخبارنا +أخباره +أخبارها +أخبارهم +أخبارًا +أخبر +أخبرت +أخبرتك +أخبرتني +أخبرته +أخبرتها +أخبرنا +أخبرني +أخبره +أخبرها +أخبرهم +أخبروني +أخبريني +أخت +أختا +أختار +أختارها +أختام +أختبر +أخترنا +أختزل +أختزنه +أختصر +أختصرها +أختفى +أختفي +أختك +أختم +أختنق +أخته +أختي +أخدش +أخذ +أخذاه +أخذت +أخذتموهن +أخذتني +أخذته +أخذتها +أخذتْ +أخذن +أخذنا +أخذناها +أخذني +أخذه +أخذها +أخذهم +أخذوا +أخذوك +أخذوه +أخذوها +أخر +أخرج +أخرجت +أخرجته +أخرجنا +أخرجه +أخرجها +أخرق +أخره +أخرون +أخرى +أخري +أخريات +أخريين +أخرُجُ +أخسر +أخش +أخشاب +أخشاه +أخشى +أخص +أخصائى +أخصائية +أخصائيي +أخصب +أخضر +أخضرا +أخضعت +أخطأ +أخطأت +أخطأته +أخطأنا +أخطئ +أخطاء +أخطاؤنا +أخطائنا +أخطائها +أخطائي +أخطار +أخطارها +أخطارًا +أخطر +أخطط +أخطّه +أخــــطار +أخف +أخفاه +أخفتها +أخفتهما +أخفض +أخفضت +أخفف +أخفق +أخفقت +أخفى +أخفي +أخفيت +أخفيها +أخلاق +أخلاقه +أخلاقهم +أخلاقي +أخلاقيا +أخلاقيات +أخلاقياً +أخلاقية +أخلاّء +أخلد +أخلص +أخلع +أخليك +أخلّ +أخلّص +أخماج +أخماس +أخمص +أخمصي +أخناتون +أخواتها +أخواتي +أخواني +أخوة +أخوته +أخوتي +أخوك +أخوه +أخوها +أخوي +أخى +أخي +أخية +أخير +أخيرا +أخيراً +أخيرة +أخيرًا +أخيه +أخيها +أخّاذة +أداء +أداءه +أداءها +أدائه +أدائها +أدائهم +أداة +أداته +أداتي +أدار +أداري +أداعبه +أدافع +أداه +أداها +أدب +أدبا +أدباء +أدباءه +أدباؤه +أدبائها +أدباً +أدبنا +أدبه +أدبي +أدبيا +أدبيات +أدبياً +أدبية +أدبيًا +أدت +أدخر +أدخره +أدخل +أدخلت +أدخلته +أدخله +أدخلها +أدخلوا +أدراج +أدراجه +أدراجي +أدران +أدرانه +أدرانها +أدراني +أدرت +أدرج +أدرجت +أدرجه +أدرس +أدرك +أدركت +أدركته +أدركتها +أدركتهم +أدركنا +أدركناه +أدركها +أدركوا +أدركْتُ +أدرى +أدري +أدريان +أدريه +أدرّس +أدرِّس +أدش +أدع +أدعه +أدعوك +أدعوه +أدعوها +أدعوهم +أدعي +أدعية +أدفع +أدق +أدقق +أدقّ +أدل +أدلة +أدلى +أدناه +أدناها +أدنبره +أدنى +أدني +أدهشت +أدهشنا +أدهشني +أدهى +أدواء +أدواة +أدوات +أدواته +أدواتي +أدوار +أدوارا +أدواراً +أدواره +أدوارها +أدواري +أدور +أدورمات +أدون +أدونيس +أدوية +أدويتها +أدى +أديب +أديبا +أديبات +أديباً +أديبة +أديبًا +أدير +أديرت +أديس +أديسون +أديمَ +أدين +أدينوفيرس +أدّت +أدّعي +أدّى +أدَّت +أذا +أذابت +أذاة +أذاسا +أذاعت +أذان +أذانهم +أذبحه +أذرعه +أذق +أذقه +أذكر +أذكره +أذكّر +أذن +أذنان +أذناً +أذنه +أذني +أذنيه +أذنيها +أذنِ +أذنِها +أذهان +أذهاننا +أذهانهم +أذهب +أذهل +أذواق +أذى +أذيات +أذيب +أذية +أذيعت +أذيل +أر +أرأسه +أرأيت +أراء +أرائك +أراجع +أراجون +أراجيحها +أراد +أرادت +أراده +أرادها +أرادوا +أرادَ +أراض +أراضي +أراضينا +أراضيه +أراضيها +أراضٍ +أراعي +أراقب +أراقبك +أراقبها +أراقبهم +أراك +أراكِ +أرامكو +أرامل +أرانب +أراني +أراه +أراها +أراهم +أرباب +أربابه +أرباح +أرباحاً +أرباحها +أرباحي +أرباع +أرباعها +أرباني +أربض +أربطتها +أربع +أربعا +أربعاً +أربعاًمن +أربعة +أربعمائة +أربعون +أربعين +أربعينيات +أربكان +أرتاح +أرتب +أرتبط +أرتدي +أرتديه +أرتضيها +أرتنا +أرتّب +أرث +أرثها +أرثوذكسيًا +أرثي +أرجئ +أرجاء +أرجائها +أرجح +أرجع +أرجعنا +أرجعه +أرجعوا +أرجل +أرجله +أرجو +أرجوانية +أرجوك +أرجوكم +أرجوكِ +أرجوه +أرحام +أرحب +أرحل +أرخبيل +أرخص +أرخي +أرد +أردت +أردتم +أردد +أردف +أردفت +أردنا +أردية +أرذل +أرز +أرزاً +أرسطو +أرسطوطالية +أرسف +أرسل +أرسلان +أرسلت +أرسلته +أرسلن +أرسلني +أرسله +أرسلوها +أرسم +أرسمه +أرسمها +أرسوز +أرسى +أرسين +أرشاك +أرشدني +أرشف +أرشميدس +أرشيف +أرشّ +أرصد +أرصدة +أرصدها +أرصفة +أرض +أرضا +أرضاً +أرضعه +أرضنا +أرضه +أرضها +أرضهم +أرضى +أرضي +أرضيات +أرضية +أرضيت +أرضيتها +أرضًا +أرطاس +أرطال +أرعبني +أرفض +أرفع +أرفف +أرق +أرقا +أرقاء +أرقام +أرقاما +أرقاماً +أرقاً +أرقب +أرقبه +أرقبهما +أرقته +أرقط +أرقى +أرقي +أركان +أركز +أركض +أركّز +أرماس +أرمسترونج +أرملة +أرمنية +أرنب +أرنبا +أرنبة +أرنست +أرنستو +أرنو +أرنولد +أره +أرها +أرهبت +أرهفت +أرهقتَني +أرهقه +أرهم +أرواح +أرواحهم +أرواد +أروح +أروع +أروقة +أرونا +أروي +أرى +أري +أريتريا +أريحا +أريحية +أريحيته +أريد +أريدك +أريدكم +أريده +أريدها +أريسطوطال +أريك +أريكة +أريكته +أريكسون +أرييل +أرّخ +أرّخوا +أزاح +أزاحت +أزاد +أزار +أزال +أزالت +أزالوها +أزحت +أزحنا +أزرار +أزرق +أزره +أزري +أزعجت +أزعل +أزفها +أزقة +أزقتها +أزكمتها +أزل +أزلي +أزلية +أزمات +أزماتنا +أزماته +أزمان +أزماناً +أزمة +أزمتنا +أزمنة +أزهار +أزهارها +أزهاها +أزهرت +أزهري +أزهرية +أزهقت +أزهى +أزواج +أزواجنا +أزواجًا +أزور +أزوره +أزورها +أزياء +أزيحي +أزيد +أزيلت +أس +أسأل +أسألك +أسألكم +أسأله +أسألها +أسألهم +أسئلة +أسئلتك +أسئلتنا +أسئلته +أسئلتهم +أسئلتي +أسابقه +أسابيع +أساتذة +أساتذتك +أساتذته +أساتذتها +أساتذتي +أسارير +أساس +أساسا +أساسات +أساساً +أساسه +أساسها +أساسىين +أساسي +أساسيا +أساسيات +أساسيان +أساسياً +أساسية +أساسيتان +أساسيتين +أساسيين +أساسًا +أساطير +أساطيره +أساطيرها +أساطيل +أساطيلها +أساطيلهم +أساعد +أساعدكما +أسافر +أساليب +أساليبه +أساليبهم +أسامة +أسانوي +أسانيد +أساوم +أسباب +أسبابا +أسباباً +أسبابه +أسبابها +أسبابيه +أسبارجين +أسبانيا +أسبح +أسبر +أسبق +أسبوع +أسبوعا +أسبوعاً +أسبوعه +أسبوعي +أسبوعيا +أسبوعياً +أسبوعية +أسبوعيتين +أسبوعين +أسبوعيًا +أسبوعًا +أستأجر +أستأذنك +أستأذنكم +أستأنس +أستاذ +أستاذا +أستاذاً +أستاذة +أستاذتنا +أستاذتي +أستاذنا +أستاذه +أستاذها +أستاذي +أستاذية +أستاذًا +أستار +أستحضر +أستحقه +أستخدم +أستخلصه +أستدرك +أستدير +أستذكر +أستراليا +أسترجع +أسترحم +أسترسل +أسترق +أستريح +أستسلم +أستشهد +أستطاع +أستطع +أستطلع +أستطيع +أستطيعه +أستعجله +أستعد +أستعملها +أستعيد +أستعيده +أستعير +أستعين +أستفد +أستفسر +أستفيد +أستفيق +أستقر +أستقيها +أستمتع +أستمد +أستمر +أستمع +أستنجد +أستوعب +أستوعبها +أستوكهولم +أستون +أستونيا +أستيقظ +أستينوف +أسجل +أسخن +أسد +أسدا +أسدلت +أسدي +أسر +أسراب +أسرابه +أسرابٌ +أسراتٍ +أسرار +أسراراً +أسرارك +أسرارنا +أسراره +أسرارها +أسراري +أسرارِ +أسرانا +أسرة +أسرت +أسرتني +أسرته +أسرتها +أسرتي +أسرج +أسرح +أسرد +أسررت +أسرع +أسرعت +أسرعنا +أسرفنا +أسرق +أسرهم +أسرى +أسري +أسرياً +أسرّت +أسس +أسست +أسستها +أسسنا +أسسه +أسسها +أسطح +أسطحها +أسطر +أسطـح +أسطوانات +أسطوانة +أسطوانتي +أسطواني +أسطوانية +أسطورة +أسطوري +أسطوريا +أسطورية +أسطول +أسطولا +أسطولها +أسطى +أسع +أسعار +أسعارالعسل +أسعاراً +أسعاره +أسعارها +أسعد +أسعدتني +أسعدني +أسعده +أسعفتنا +أسعفته +أسعى +أسـئلة +أسف +أسفا +أسفار +أسفاره +أسفارها +أسفارهم +أسفارًا +أسفر +أسفرت +أسفل +أسفلت +أسفلتية +أسفله +أسفلها +أسفه +أسقط +أسقطها +أسقطوا +أسقطوها +أسقف +أسكت +أسكتلندا +أسكن +أسكنه +أسلافنا +أسلافه +أسلاك +أسلةً +أسلح +أسلحة +أسلحتنا +أسلحته +أسلحتها +أسلحتهم +أسلفت +أسلفنا +أسلك +أسلم +أسلمة +أسلمت +أسلوب +أسلوبا +أسلوباً +أسلوبك +أسلوبنا +أسلوبه +أسلوبها +أسلوبية +أسلوبين +أسلوبًا +أسلّي +أسماء +أسماءهم +أسماءً +أسماؤها +أسماؤهم +أسماؤهن +أسمائه +أسمائها +أسماع +أسماعنا +أسماك +أسماكها +أسماه +أسماها +أسمته +أسمح +أسمدة +أسمدتها +أسمر +أسمرة +أسمع +أسمعتم +أسمعني +أسمعه +أسمعيني +أسمك +أسمنتي +أسمنتية +أسموه +أسموها +أسمى +أسمياها +أسميته +أسمينا +أسميناه +أسميه +أسنان +أسنانه +أسنانها +أسنانهم +أسناني +أسندت +أسهر +أسهل +أسهم +أسهمت +أسهمه +أسهمها +أسهموا +أسوأ +أسوار +أسواراً +أسوارها +أسواق +أسواقا +أسواقنا +أسواقها +أسوان +أسوة +أسود +أسودا +أسوداً +أسوق +أسى +أسي +أسيء +أسيئ +أسيا +أسياخ +أسيادنا +أسيتيل +أسيجة +أسير +أسيرا +أسيراً +أسيرة +أسيرةً +أسيوط +أسّسها +أشاء +أشاح +أشاحت +أشاد +أشادت +أشار +أشارت +أشارك +أشاركهم +أشاروا +أشاطره +أشاطرهم +أشاع +أشاعت +أشاعه +أشاعها +أشاعوا +أشاهد +أشاهدها +أشباح +أشباحاً +أشبال +أشباه +أشباهه +أشباههم +أشبه +أشترك +أشتهي +أشجار +أشجارا +أشجاره +أشجارها +أشجانا +أشجع +أشجعهم +أشخاص +أشخاصاً +أشخبر +أشد +أشداء +أشداق +أشداقها +أشده +أشدها +أشدّ +أشدّها +أشرار +أشراف +أشرت +أشرح +أشرطة +أشرعة +أشرعتها +أشرف +أشرقت +أشركتهم +أشركنا +أشرنا +أشطر +أشعات +أشعار +أشعاره +أشعارها +أشعارهم +أشعاري +أشعب +أشعة +أشعتها +أشعث +أشعر +أشعل +أشعلت +أشعيا +أشعّة +أشعّت +أشفق +أشق +أشقاء +أشقائه +أشقوردة +أشك +أشكال +أشكالا +أشكالاً +أشكاله +أشكالها +أشكرك +أشكل +أشكو +أشكّل +أشلاء +أشم +أشمل +أشهد +أشهر +أشهرت +أشهرها +أشهى +أشواطاً +أشواق +أشوفج +أشياء +أشياءه +أشياؤه +أشير +أشيك +أصاب +أصابة +أصابت +أصابتنا +أصابتني +أصابته +أصابع +أصابعك +أصابعنا +أصابعه +أصابعها +أصابعهم +أصابعي +أصابنا +أصابني +أصابه +أصابها +أصابهم +أصابهما +أصابوني +أصارحكم +أصاف +أصافح +أصالة +أصالته +أصالتها +أصبت +أصبح +أصبحا +أصبحت +أصبحتا +أصبحتْ +أصبحـت +أصبحن +أصبحنا +أصبحوا +أصبع +أصبعه +أصبه +أصبو +أصحاب +أصحابه +أصحابها +أصحابي +أصحو +أصداء +أصداؤه +أصدائه +أصدر +أصدرالأمين +أصدرت +أصدرتم +أصدرته +أصدرتها +أصدره +أصدرها +أصدرْتُ +أصدق +أصدقاء +أصدقاؤك +أصدقاؤه +أصدقائك +أصدقائنا +أصدقائه +أصدقائها +أصدقائي +أصدقه +أصدكم +أصدّر +أصدّق +أصر +أصرت +أصرخ +أصرخي +أصرف +أصرفه +أصروا +أصرّ +أصص +أصطحبكم +أصطدم +أصعب +أصعبها +أصعد +أصعده +أصعّد +أصف +أصفر +أصفه +أصفهان +أصقاع +أصل +أصلا +أصلاب +أصلاً +أصلع +أصله +أصلها +أصلي +أصلية +أصم +أصمت +أصناف +أصنافاً +أصنافه +أصنافها +أصنع +أصنف +أصواب +أصوات +أصواتا +أصواتاً +أصواتنا +أصواتها +أصواتهم +أصور +أصول +أصوله +أصولها +أصولهم +أصولية +أصياف +أصيب +أصيبا +أصيبت +أصيبعة +أصيبوا +أصير +أصيل +أصيلا +أصيلاً +أصيلة +أضاءت +أضاع +أضاعف +أضاف +أضافت +أضافر +أضحت +أضحك +أضحكتنا +أضحى +أضحي +أضحية +أضخم +أضخمها +أضر +أضرار +أضرارا +أضراره +أضرارها +أضراس +أضراسه +أضرب +أضربُ +أضرت +أضرحة +أضرمت +أضرّت +أضطر +أضطررنا +أضع +أضعاف +أضعت +أضعته +أضعف +أضعفتها +أضعفني +أضعها +أضف +أضفت +أضفنا +أضفى +أضلاع +أضلاعه +أضلَّت +أضم +أضمن +أضمنه +أضمه +أضنتهما +أضواء +أضيء +أضيع +أضيف +أضيفت +أضيق +أطاع +أطال +أطالب +أطباء +أطباق +أطبعه +أطبق +أطحن +أطر +أطرا +أطراف +أطرافا +أطرافاً +أطرافه +أطرافها +أطرح +أطرف +أطرها +أطروحاتها +أطروحة +أطروحته +أطروحتي +أطعمة +أطعمتهم +أطعمه +أطفأ +أطفال +أطفالا +أطفالنا +أطفاله +أطفالها +أطفالهم +أطفالهما +أطفالهن +أطفالي +أطقم +أطل +أطلال +أطلالا +أطلانطا +أطلب +أطلبه +أطلت +أطلس +أطلع +أطلعت +أطلعتني +أطلعوا +أطلق +أطلقا +أطلقت +أطلقته +أطلقتها +أطلقنا +أطلقه +أطلقها +أطلقوا +أطلقي +أطلّق +أطمح +أطمع +أطنان +أطنانًا +أطهر +أطوار +أطواره +أطوارها +أطوالها +أطول +أطياف +أطيب +أطير +أطيق +أطيل +أظافره +أظفاري +أظل +أظلت +أظن +أظنك +أظننا +أظنه +أظنها +أظنّه +أظهر +أظهرت +أظهرتها +أعاجيب +أعاد +أعادا +أعادت +أعادته +أعادني +أعادوا +أعادوه +أعاق +أعالج +أعالجها +أعالى +أعالي +أعامل +أعانته +أعانق +أعانه +أعانهم +أعاني +أعانيه +أعانيها +أعبأ +أعباء +أعباءه +أعباءً +أعباؤه +أعبائها +أعبر +أعبـر +أعبّر +أعتاب +أعتبر +أعتبره +أعتبرها +أعتدي +أعتذر +أعترف +أعتز +أعتزم +أعتقد +أعتقدت +أعتمد +أعتني +أعتى +أعثر +أعجب +أعجبت +أعجبتنا +أعجبتني +أعجبته +أعجبني +أعجز +أعجف +أعجمه +أعجمي +أعجوبة +أعد +أعداء +أعداءك +أعداءها +أعداءهم +أعداؤه +أعداؤها +أعدائه +أعدائهم +أعداد +أعدادا +أعداداً +أعداده +أعدادها +أعدادهم +أعدادًا +أعدت +أعدتم +أعدته +أعدتها +أعدتُ +أعدد +أعددت +أعدم +أعده +أعدها +أعدوا +أعدوه +أعدّ +أعدّل +أعدّه +أعدَّت +أعذب +أعذبها +أعرابي +أعرابيّ +أعراس +أعراض +أعراضا +أعراضه +أعراف +أعراق +أعراقهم +أعرب +أعربت +أعربوا +أعرض +أعرضت +أعرضه +أعرف +أعرفك +أعرفكم +أعرفه +أعرفها +أعرفهم +أعرفُ +أعرق +أعز +أعزائي +أعزف +أعزّ +أعشاب +أعشاباً +أعشابها +أعشاش +أعشاشا +أعشاشاً +أعشاشه +أعشاشها +أعشق +أعشقه +أعصاب +أعصابك +أعصابه +أعصابي +أعضاء +أعضاءها +أعضاؤها +أعضاؤهم +أعضائه +أعضائها +أعطاف +أعطاك +أعطال +أعطاني +أعطاه +أعطاها +أعطاهم +أعطت +أعطتني +أعطته +أعطني +أعطه +أعطوا +أعطونا +أعطى +أعطي +أعطيت +أعطيتها +أعطيك +أعطيناكم +أعطِ +أعظم +أعظمها +أعـود +أعقاب +أعقابها +أعقبت +أعقبتها +أعقبها +أعقد +أعلا +أعلام +أعلامه +أعلاه +أعلاها +أعلت +أعلم +أعلمك +أعلمني +أعلمه +أعلمونا +أعلن +أعلنت +أعلنه +أعلى +أعلي +أعليه +أعمار +أعماركم +أعمارهم +أعماق +أعماقك +أعماقه +أعماقها +أعماقهم +أعماقهن +أعماقي +أعماقِ +أعمال +أعمالا +أعمالاً +أعمالك +أعماله +أعمالها +أعمالهم +أعمالي +أعمامي +أعمدة +أعمق +أعمل +أعمى +أعناقها +أعنف +أعني +أعنيه +أعنّة +أعهده +أعواد +أعوام +أعوامي +أعود +أعوذ +أعور +أعوض +أعوم +أعوّدها +أعوّض +أعي +أعياد +أعيادهم +أعيان +أعيانها +أعياه +أعيد +أعيده +أعيدي +أعيره +أعيش +أعيشه +أعيشها +أعين +أعيننا +أعينها +أعينهم +أف +أفئدة +أفئدتهم +أفاد +أفادت +أفادتني +أفادوا +أفاضت +أفاضل +أفاق +أفاقا +أفاقاً +أفاقت +أفاويه +أفتتح +أفتح +أفتحه +أفتخر +أفتراحها +أفترض +أفتش +أفتقده +أفتِّش +أفجع +أفجي +أفحص +أفخر +أفخم +أفدت +أفدح +أفدنة +أفراح +أفراحهم +أفراد +أفرادا +أفراده +أفرادها +أفرادَ +أفراس +أفرام +أفرج +أفرح +أفرخت +أفردت +أفرزها +أفرض +أفرط +أفرطت +أفرع +أفركهما +أفريقي +أفريقيا +أفريقية +أفريك +أفرّق +أفزع +أفزعتنا +أفزعني +أفسح +أفسحت +أفسد +أفسدت +أفسدته +أفسده +أفسدوا +أفسّر +أفشل +أفصحت +أفضت +أفضحك +أفضل +أفضلها +أفضّل +أفضِّل +أفطن +أفظع +أفظعني +أفعال +أفعل +أفعله +أفعى +أفق +أفقاً +أفقد +أفقده +أفقر +أفقيا +أفقياً +أفقية +أفكار +أفكارا +أفكاراً +أفكاره +أفكارها +أفكارهم +أفكارهما +أفكاري +أفكر +أفكّر +أفل +أفلا +أفلاج +أفلاطون +أفلام +أفلاما +أفلامك +أفلامه +أفلامها +أفلامي +أفلت +أفلح +أفلحت +أفلس +أفنت +أفهم +أفهمها +أفواج +أفواه +أفواها +أفواهها +أفواههم +أفولها +أفيائها +أفيد +أفيشاته +أفينيو +أقابل +أقابله +أقارب +أقاربك +أقاربنا +أقاربه +أقاربها +أقاربهم +أقاربي +أقارعهم +أقاصي +أقال +أقاليم +أقام +أقامت +أقامته +أقامتها +أقامر +أقامه +أقامها +أقاموا +أقاويل +أقاويلهم +أقبض +أقبل +أقبلها +أقبلوا +أقبية +أقتحم +أقتحمها +أقترب +أقترح +أقتل +أقتله +أقتلهم +أقحاح +أقحوان +أقداح +أقداحه +أقدام +أقدامنا +أقدامه +أقدامها +أقدامهم +أقدامَهما +أقدر +أقدره +أقدرها +أقدس +أقدم +أقدمت +أقدمه +أقدمها +أقدّرهم +أقر +أقرأ +أقرأه +أقرأها +أقراص +أقراط +أقران +أقرانه +أقرانها +أقرانهم +أقرب +أقرباءها +أقرباؤنا +أقربائنا +أقربائها +أقربائهما +أقربائي +أقرت +أقرتها +أقرفص +أقرن +أقره +أقرها +أقرّه +أقساط +أقسام +أقساما +أقسامها +أقسم +أقسنقر +أقسو +أقسى +أقسّم +أقصاب +أقصاها +أقصد +أقصده +أقصر +أقصى +أقصي +أقصيت +أقضت +أقضي +أقطاب +أقطار +أقطارنا +أقطاره +أقطارهم +أقطان +أقطع +أقطفه +أقطن +أقع +أقعدته +أقعده +أقعدها +أقف +أقفاص +أقفرت +أقل +أقلام +أقلامهم +أقلت +أقلتنا +أقلع +أقلعت +أقلق +أقلقت +أقلقنا +أقله +أقلها +أقلية +أقليدس +أقلّ +أقلّب +أقلُّ +أقم +أقمار +أقماش +أقمت +أقمشة +أقمنا +أقمناه +أقنع +أقنعة +أقنعت +أقنعه +أقواس +أقواسا +أقوال +أقوالهم +أقوام +أقول +أقوله +أقولها +أقوم +أقوى +أقوياء +أقيس +أقيل +أقيم +أقيمت +أكاد +أكاديمي +أكاديميا +أكاديمياً +أكاديمية +أكاسيد +أكاكوس +أكان +أكانت +أكبر +أكبرها +أكبرهم +أكبرَ +أكتاف +أكتافنا +أكتافه +أكتب +أكتبه +أكتبها +أكترث +أكتسب +أكتشف +أكتفي +أكتوبر +أكتوس +أكثر +أكثرأهمية +أكثرالكتب +أكثرمن +أكثره +أكثرها +أكثرهم +أكثرهن +أكثرية +أكثفها +أكد +أكدت +أكدته +أكده +أكدها +أكذب +أكذوبة +أكر +أكراد +أكرر +أكرم +أكرمكم +أكره +أكرهك +أكرهه +أكزيما +أكزيمائية +أكسب +أكسبته +أكسبها +أكسجة +أكسجين +أكسدة +أكسر +أكسفورد +أكسوبري +أكسي +أكسيد +أكسيدنتال +أكفاء +أكفاننا +أكفهم +أكفيك +أكل +أكلات +أكلة +أكلت +أكلنا +أكله +أكلها +أكمات +أكمامه +أكمد +أكمل +أكملنا +أكملوا +أكن +أكواب +أكواخ +أكواخهم +أكواريوس +أكوام +أكوره +أكولة +أكون +أكونه +أكويلا +أكياس +أكياساً +أكياسهم +أكيبوس +أكيد +أكيدا +أكيدة +أكُفٍّ +أكّد +أكّدته +أكَّد +ألا +ألاباما +ألاحظ +ألاحظه +ألاحظها +ألازمه +ألاسكا +ألاعيبه +ألان +ألاين +ألاّ +ألاَّ +ألب +ألبا +ألبانها +ألباني +ألبانيا +ألبتة +ألبرت +ألبرتي +ألبس +ألبسة +ألبسه +ألبسوه +ألبـــير +ألبوماته +ألبومًا +ألبي +ألبير +ألتدبير +ألتفت +ألتقط +ألتقي +ألتمس +ألتهب +ألجأ +ألحان +ألحانه +ألححنا +ألحظ +ألحـق +ألحق +ألحقت +ألحقه +ألحّت +ألخص +ألخصها +ألدس +ألدو +ألدوس +ألزمته +ألزهايمر +ألست +ألستُ +ألستِ +ألسن +ألسنا +ألسنة +ألسنةٍ +ألسنتكم +ألسنتها +ألصق +ألطف +ألعاب +ألعابا +ألعب +ألعن +ألعنها +ألف +ألفا +ألفاظ +ألفاظا +ألفاظه +ألفاظها +ألفان +ألفاً +ألفة +ألفت +ألفته +ألفتها +ألفرد +ألفريد +ألفناه +ألفه +ألفها +ألفي +ألفية +ألفين +ألفًا +ألفَ +ألفّ +ألقاب +ألقاه +ألقاها +ألقت +ألقتها +ألقها +ألقوا +ألقى +ألقي +ألقيت +ألقيتُ +ألقيتُها +ألقينا +ألقيها +ألقَى +ألكاليجينس +ألكترونيا +ألكسندر +ألم +ألمان +ألماني +ألمانيا +ألمانية +ألمانًا +ألماً +ألمحت +ألمس +ألمع +ألملم +ألمنيوم +ألمها +ألميكادو +ألمّ +ألمّت +ألن +ألهب +ألهبت +ألهته +ألهذا +ألهمته +ألهمني +ألهمه +ألهوه +ألواح +ألوان +ألوانا +ألوانك +ألوانه +ألوانها +ألوث +ألوذ +ألوف +ألوم +ألوية +ألياف +أليس +أليست +أليف +أليفاً +أليفة +أليمة +ألين +ألينوى +ألِدْهُ +ألّف +ألّفت +ألَّف +ألْصقت +أم +أما +أمارات +أمارس +أمازلت +أمازون +أماسي +أمافي +أماكن +أماكننا +أماكنها +أمالي +أمام +أمامك +أمامنا +أمامه +أمامها +أمامهم +أمامهما +أمامي +أمان +أمانا +أمانة +أمانتك +أمانها +أمانًا +أماً +أمبوس +أمبيسيلين +أمة +أمتار +أمتاراً +أمتعة +أمتعتنا +أمتعته +أمتعتهم +أمتعض +أمتعنا +أمتلك +أمتنا +أمته +أمتها +أمتهم +أمتهن +أمتي +أمثال +أمثالك +أمثالنا +أمثاله +أمثالها +أمثالي +أمثل +أمثلة +أمجاد +أمجاده +أمجادهم +أمجد +أمد +أمدا +أمداً +أمدح +أمدد +أمده +أمر +أمرا +أمراء +أمرائها +أمراض +أمراضا +أمراضنا +أمراضه +أمراضهم +أمران +أمراً +أمرت +أمرتني +أمرتِ +أمرك +أمرنا +أمره +أمرها +أمري +أمريكا +أمريكان +أمريكى +أمريكي +أمريكيا +أمريكيات +أمريكياً +أمريكية +أمريكيون +أمريكيين +أمريكيًا +أمرين +أمرًا +أمرٌ +أمرٍ +أمس +أمسافر +أمستردام +أمسك +أمسكا +أمسكت +أمسكتْ +أمسكنا +أمسكناه +أمسكوا +أمسيات +أمسياته +أمسية +أمسيت +أمشي +أمضاها +أمضوا +أمضى +أمضي +أمضيت +أمضيتم +أمضيته +أمضيتها +أمطرت +أمعاء +أمعن +أمعنت +أمـا +أمـل +أمك +أمكث +أمكن +أمكنة +أمكنتهم +أمكنك +أمكننا +أمل +أملا +أملاح +أملاك +أملاً +أملت +أملس +أملك +أملكه +أمله +أملها +أملوها +أملى +أملي +أمم +أممي +أممية +أممًا +أمن +أمنا +أمناء +أمناً +أمنت +أمنحتب +أمنحه +أمنحها +أمنع +أمنعك +أمنعه +أمنه +أمنوا +أمني +أمنيا +أمنياته +أمنياتهم +أمنياً +أمنية +أمنيته +أمنيتها +أمنيتي +أمه +أمها +أمهات +أمهاتها +أمهاتهم +أمهد +أمهرِ +أمهم +أموات +أمواج +أمواجا +أمواجه +أموال +أموالا +أموالاً +أمواله +أموالها +أموالهم +أموت +أمور +أمورا +أموراً +أمورك +أموركم +أمورنا +أموره +أمورها +أمورهم +أمورًا +أمويين +أمي +أميال +أمية +أمير +أميرا +أميراتها +أميرال +أميرة +أميركا +أميركية +أميرها +أميري +أميرًا +أميز +أميل +أمين +أمينا +أميناً +أمينة +أمينه +أميين +أميّ +أميّاً +أميّز +أميّون +أمَةَ +أمّ +أمّا +أمّة +أمّنوا +أمَّا +أمَّاً +أن +أنا +أنابيب +أناجيها +أناديك +أناديه +أنارت +أنازلهم +أناس +أناسا +أناساً +أناشيد +أناشيدي +أنام +أنامل +أناملنا +أنامهم +أناني +أناهيت +أناهيد +أنباء +أنبتتهم +أنبله +أنبه +أنبوب +أنت +أنتج +أنتجت +أنتجته +أنتجتها +أنتجرال +أنتجنا +أنتجه +أنتجوا +أنتجوه +أنتخب +أنتزاع +أنتسب +أنتشي +أنتصاري +أنتظر +أنتظرها +أنتقل +أنتقم +أنتقي +أنتم +أنتما +أنتمي +أنتهي +أنتي +أنتَ +أنتِ +أنثاه +أنثوي +أنثوية +أنثى +أنثيين +أنج +أنجب +أنجبت +أنجبهم +أنجح +أنجز +أنجزت +أنجزته +أنجزتها +أنجزنا +أنجزه +أنجزها +أنجزوا +أنجع +أنجلوس +أنحاء +أنحـاء +أند +أندر +أندرسون +أندره +أندرو +أندريا +أندريه +أندهش +أندي +أندية +أنر +أنزل +أنزلت +أنزلونا +أنزور +أنزيماته +أنزيماً +أنس +أنساب +أنساق +أنساقها +أنساقًا +أنسام +أنسانا +أنساني +أنساه +أنساها +أنساهما +أنسب +أنسته +أنستهم +أنسج +أنسجة +أنسجته +أنسجتها +أنسجم +أنسحب +أنسخ +أنسكِ +أنسلمو +أنسلُّ +أنسى +أنشأ +أنشأت +أنشأته +أنشأتها +أنشأها +أنشأوا +أنشئ +أنشئت +أنشاها +أنشد +أنشدتها +أنشر +أنشره +أنشرها +أنشطة +أنشطتنا +أنشطته +أنشطتها +أنشطتهم +أنشودة +أنصار +أنصاره +أنصارها +أنصاف +أنصت +أنصتت +أنصح +أنصع +أنصفوا +أنضج +أنضجته +أنضجه +أنطاكية +أنطوان +أنطون +أنطونين +أنطونيوس +أنظار +أنظارنا +أنظارهم +أنظاري +أنظر +أنظف +أنظمة +أنظمتها +أنعشت +أنعشتني +أنعم +أنعيها +أنف +أنفاس +أنفاسنا +أنفاسه +أنفاسها +أنفاسهم +أنفاسي +أنفاقا +أنفجر +أنفس +أنفسا +أنفسكم +أنفسنا +أنفسهم +أنفسهن +أنفع +أنفـاسـُه +أنفق +أنفقت +أنفقته +أنفقوا +أنفك +أنفه +أنفها +أنفي +أنفيليكا +أنقاض +أنقاضه +أنقذت +أنقذتني +أنقذني +أنقذونا +أنقر +أنقرة +أنقصه +أنقض +أنقل +أنقله +أنقلها +أنقى +أنك +أنكر +أنكره +أنكروا +أنكم +أنم +أنما +أنماط +أنماطا +أنماطه +أنموذج +أنموذجا +أنموذجاً +أنموذجًا +أننا +أننى +أنني +أنه +أنها +أنهار +أنهت +أنهر +أنهض +أنهكت +أنهكتها +أنهكه +أنهم +أنهما +أنهن +أنهى +أنهيت +أنهيتُ +أنوء +أنوا +أنوار +أنوارها +أنواع +أنواعا +أنواعاً +أنواعه +أنواعها +أنوال +أنوثة +أنوثتها +أنور +أنوسنت +أنوفنا +أنوي +أنوية +أنى +أني +أنياب +أنياباً +أنيابه +أنيابها +أنير +أنيردد +أنيس +أنيسة +أنيسفيلد +أنيطت +أنيق +أنيقة +أنيقًا +أنيميا +أنين +أنينا +أنّ +أنّا +أنّنا +أنّني +أنّه +أنّها +أنّى +أنَّ +أنَّبته +أنَّه +أنَّها +أهاب +أهابه +أهاجر +أهالي +أهبة +أهتف +أهتم +أهتماماتك +أهجم +أهدأ +أهدئ +أهداب +أهدابه +أهداف +أهدافه +أهدافها +أهداني +أهداه +أهداها +أهدتني +أهدتها +أهدف +أهدم +أهدى +أهدي +أهذا +أهذي +أهرامات +أهرب +أهكذا +أهل +أهلا +أهلاً +أهلة +أهلته +أهلك +أهلم +أهلنا +أهله +أهلها +أهلي +أهلية +أهليتهم +أهم +أهمس +أهمل +أهملت +أهملناه +أهمها +أهمهم +أهمهما +أهمية +أهميته +أهميتها +أهمّ +أهمّها +أهنئك +أهنئكم +أهنيك +أهو +أهوائها +أهوادو +أهوار +أهوال +أهون +أهوى +أهي +أهيئ +أهيب +أهينت +أهّلنا +أهّلني +أهَّله +أو +أوأخالفهم +أوأي +أوائل +أواثنين +أواجه +أواخر +أواخره +أوارا +أوارد +أواره +أوارها +أواسط +أواصر +أواصل +أواظب +أوافق +أوافقهم +أوالطعام +أوامر +أوامره +أوامرها +أوان +أواني +أوانٍ +أواه +أواي +أوبئة +أوبرا +أوبريت +أوبك +أوبنهايمر +أوبيك +أوتاد +أوتاوا +أوتوا +أوتوشيلي +أوتوماتيكي +أوتي +أوج +أوجار +أوجاع +أوجاعه +أوجاعها +أوجب +أوجد +أوجدت +أوجدتها +أوجز +أوجست +أوجه +أوجها +أوجهاً +أوجهها +أوجين +أوحال +أوحالا +أوحت +أوحش +أوحوا +أوحى +أود +أودت +أودع +أودعه +أودعها +أودعونا +أودى +أودية +أوديتها +أور +أوراق +أوراقه +أوراقها +أوراقهم +أوراقي +أوراقٌ +أورام +أوراني +أوربا +أورباني +أوربي +أوربياً +أوربية +أوربيين +أورثتْني +أورثه +أورد +أوردت +أوردته +أوردنا +أوردناه +أورده +أوردها +أوردوا +أورطة +أوركتسراليا +أوركسترا +أوركسترالي +أورلاندو +أورلي +أورليانز +أورنك +أورو +أوروبا +أوروبية +أوروك +أورومجي +أورويل +أوريكس +أوزار +أوزاره +أوزارها +أوزانها +أوزانهم +أوزانهن +أوزع +أوزفالدو +أوزن +أوزنك +أوزو +أوزيبيو +أوس +أوساط +أوساطهم +أوسبنسكي +أوسترهولم +أوستلر +أوستن +أوستيند +أوسط +أوسطتين +أوسطها +أوسطي +أوسطية +أوسطيين +أوسع +أوسكار +أوسكارات +أوسلو +أوسمات +أوسمته +أوشك +أوشكت +أوشين +أوصاف +أوصال +أوصالها +أوصاليه +أوصانا +أوصاني +أوصت +أوصتني +أوصعوبة +أوصل +أوصلت +أوصلتها +أوصلها +أوصى +أوصياءهم +أوضاع +أوضاعنا +أوضاعه +أوضاعها +أوضاعهم +أوضح +أوضحت +أوضحهم +أوضحوا +أوطان +أوطانها +أوطانهم +أوطويت +أوظف +أوعرائس +أوعز +أوعية +أوعيته +أوفاتا +أوفد +أوفدوا +أوفى +أوقات +أوقاتكم +أوقاتنا +أوقاته +أوقاتها +أوقاتهم +أوقاتًا +أوقبله +أوقد +أوقع +أوقعت +أوقعتني +أوقعنا +أوقعها +أوقف +أوقفت +أوقفته +أوقفه +أوقفها +أوقفوا +أوقفوه +أوقلو +أوقّع +أوكتايل +أوكراني +أوكرانيا +أوكسجين +أوكسفورد +أوكسوس +أوكسي +أوكل +أوكلاهوما +أوكلت +أول +أولئك +أولا +أولاد +أولاداً +أولادنا +أولاده +أولادها +أولادهم +أولادهما +أولادي +أولاك +أولاه +أولاها +أولاهما +أولاً +أولبرايت +أولت +أولتها +أولد +أوللرسم +أوله +أولها +أولهما +أولو +أولويات +أولوياتها +أولوية +أولى +أولي +أولياء +أوليات +أولياً +أولية +أوليفر +أوليفينات +أوليمبيا +أومان +أومدن +أومن +أوموافقة +أون +أونا +أونتاريو +أونثاريو +أونجاريتي +أونفور +أونوفروي +أونيل +أوه +أوهام +أوهامي +أوهايو +أوهم +أوهمني +أوهَب +أوو +أوي +أويت +أوّل +أوّلاً +أى +أىضا +أي +أيا +أيابا +أيادي +أياديهم +أيادٍ +أيام +أياما +أياماً +أيامنا +أيامه +أيامها +أيامي +أيامًا +أياً +أيبرز +أيبس +أيبك +أية +أيتام +أيتها +أيجوز +أيد +أيدت +أيدتها +أيدى +أيدي +أيدينا +أيديهم +أيديهما +أيديولوجيا +أيديولوجيات +أيديولوجياتهم +أيديولوجية +أيرلندي +أيروبيكس +أيزو +أيسر +أيسلاند +أيسلندا +أيسلندة +أيضا +أيضاً +أيضاَ +أيضًا +أيقظه +أيقظوني +أيقن +أيقنت +أيقونات +أيقوناتها +أيقونة +أيقونتها +أيلول +أيما +أيمكن +أيمن +أين +أينشتاين +أينشتين +أينشين +أينعت +أينما +أيها +أيهـــــا +أيهما +أيوب +أيونيدس +أيّ +أيّا +أيّام +أيّامه +أيّدها +أيّما +أيّهم +أيّهما +أيًّا +أيَّ +أيِّ +أَتْقَاكُمْ +أَحسَّ +أَسره +أَكْرَمَكُمْ +أَن +أَنهِ +أَنِّي +أَوْ +أَوْلِيَاءُ +أَيُّهَا +أُبتت +أُتيح +أُجري +أُجريت +أُجرِيَت +أُحب +أُحبُّ +أُحسن +أُخذت +أُخرج +أُخضعت +أُدخلت +أُدْخِلَ +أُذن +أُرسلت +أُريد +أُزيلت +أُضِيعُ +أُطيق +أُعدت +أُعدَّت +أُعفي +أُعلن +أُعيد +أُعْلنَ +أُفرج +أُفقدت +أُفلت +أُقيمت +أُلحق +أُلقي +أُلَملِم +أُلْهَم +أُمَّها +أُنشئ +أُنشئت +أُنْثَى +أُنْشِئَ +أُهدي +أُهين +أُوتُوا +أُوصي +أُولئك +أُولَئِكَ +إ +إإ +إإإ +إباحيا +إباحية +إبادة +إبان +إبتعد +إبحار +إبحارا +إبداء +إبداع +إبداعا +إبداعات +إبداعاته +إبداعاتها +إبداعاتهم +إبداعاتي +إبداعاً +إبداعه +إبداعها +إبداعي +إبداعيا +إبداعياً +إبداعية +إبر +إبراز +إبرازا +إبرازها +إبرامه +إبراهام +إبراهيم +إبرة +إبرهيم +إبريق +إبريل +إبصار +إبصارهم +إبطاء +إبطائها +إبطالها +إبعاد +إبعاداً +إبعاده +إبعادي +إبقاء +إبليس +إبن +إبناه +إبنة +إبهار +إبو +إبّان +إتاحة +إتاحتها +إتاحـة +إتجاه +إتحاد +إتخاذ +إتش +إتصال +إتصاله +إتصل +إتضح +إتفاقية +إتقان +إتقانه +إتقانها +إتلاف +إتلافها +إتمام +إتمامه +إتيل +إثارة +إثبات +إثباته +إثر +إثراء +إثرها +إثقال +إثنين +إثير +إثيلين +إجابات +إجابة +إجابته +إجابتي +إجادة +إجازاتهم +إجازة +إجازته +إجبار +إجباراً +إجبارى +إجباريا +إجتجاجا +إجر +إجراء +إجراءات +إجراءاتها +إجراؤها +إجرائهم +إجري +إجلاء +إجلالاً +إجماع +إجماعاً +إجمالا +إجمالاً +إجمالى +إجمالي +إجماليا +إجهاض +إجهاضات +إحاطة +إحالتها +إحالتي +إحباط +إحباطات +إحباطاته +إحتمال +إحداث +إحداثه +إحداثها +إحداثياته +إحداها +إحداهما +إحداهن +إحدى +إحدي +إحذري +إحراز +إحرازه +إحراق +إحساس +إحساسا +إحساساتي +إحساساً +إحساسه +إحساسهم +إحساسي +إحسان +إحصاء +إحصاءات +إحصاءاتنا +إحصائي +إحصائيات +إحصائية +إحضار +إحضارها +إحـدي +إحقاق +إحقاقاً +إحكام +إحلال +إحليل +إحنا +إحناإحنا +إحياء +إحيائه +إخافة +إخافته +إخافتهم +إخبار +إخباره +إخبارهم +إخبارية +إخراج +إخراجه +إخراجها +إخصائي +إخصائيا +إخصائيين +إخصاب +إخضاع +إخضاعه +إخضاعها +إخطار +إخطاره +إخفاء +إخفاءها +إخفائها +إخفاق +إخفاقاتها +إخفاقنا +إخلاء +إخلاصه +إخماد +إخوان +إخوانا +إخواننا +إخوانه +إخوانهم +إخواني +إخوة +إخوتنا +إخوته +إخوتهم +إدارات +إداراته +إدارة +إدارته +إدارتها +إداري +إداريا +إدارية +إداريّة +إدانة +إدانتك +إدانته +إدانتها +إدجار +إدخال +إدخاله +إدراج +إدراجه +إدراجها +إدراك +إدراكاً +إدراكه +إدريس +إدسا +إدعاء +إدعاءً +إدفو +إدماج +إدماجه +إدمان +إدموند +إدن +إدوار +إدوارالخراط +إدوارد +إذ +إذا +إذاعات +إذاعة +إذاعي +إذاعياً +إذاعية +إذاً +إذعان +إذكاء +إذلال +إذلالاً +إذلاله +إذن +إذنا +إذناً +إذنك +إذنه +إذهب +إذًا +إذْ +إرادة +إرادتك +إرادتي +إرادياً +إرباك +إرباكا +إربي +إرتاح +إرتاخ +إرث +إرثي +إرجاء +إرجاؤه +إرجاع +إرخاء +إرساء +إرسال +إرسالا +إرساله +إرسالها +إرسالهم +إرشاد +إرشادات +إرشاداتهم +إرشادية +إرضاء +إرضاءً +إرفنج +إرل +إرهاب +إرهابي +إرهابية +إرهاصات +إرهاق +إريتريا +إريل +إزاء +إزاءه +إزاءها +إزاحة +إزار +إزارلة +إزاري +إزالة +إزالتها +إزداد +إزعاج +إزعاجا +إزعاجهم +إزهار +إزهاقه +إس +إسا +إساءة +إسالة +إسباس +إسباني +إسبانيا +إسبانيتنا +إستاد +إستانب +إستانبول +إستثمار +إستجاب +إستدرجتها +إستر +إستراتيجيات +إستراتيجية +إسترازينيكا +إسترحمهما +إسترليني +إستطلاع +إستعداد +إستعدادا +إستعمال +إستمرار +إستون +إسرائيل +إسرائيلي +إسرائيلياً +إسرائيلية +إسرائيليين +إسرافا +إسطرلاب +إسطرلابًا +إسعاد +إسعافا +إسقاط +إسقاطات +إسقاطاته +إسقاطاتهم +إسقاطه +إسكاته +إسكندراني +إسكواش +إسكيتش +إسكيتشًا +إسلام +إسلاماً +إسلامه +إسلامها +إسلامي +إسلاميا +إسلامياً +إسلامية +إسلاميتين +إسلاميًا +إسلاميًّا +إسماع +إسماعيل +إسمج +إسمح +إسمحوا +إسمع +إسمه +إسمي +إسنا +إسناد +إسنادها +إسهال +إسهام +إسهاما +إسهامات +إسهاماته +إسهاماتها +إسهاماً +إسهامه +إسهامي +إسهروا +إشادة +إشارات +إشاراته +إشاراتها +إشارة +إشارته +إشارتهم +إشاعات +إشاعة +إشباع +إشباعها +إشرابا +إشراف +إشرافه +إشرافها +إشراقة +إشراك +إشعار +إشعاع +إشعاعات +إشعاعاتها +إشعاعها +إشعاعي +إشعاله +إشفاق +إشفيك +إشكالات +إشكالي +إشكاليات +إشكالية +إشهار +إصابات +إصابة +إصابته +إصابتها +إصابتهم +إصبر +إصبع +إصبعه +إصبعها +إصبعي +إصحاح +إصحاحها +إصدار +إصدارا +إصدارات +إصداراتها +إصداره +إصدارها +إصدارًا +إصرار +إصرارا +إصراره +إصراري +إصعدي +إصلاح +إصلاحا +إصلاحات +إصلاحه +إصلاحها +إصلاحي +إصلاحية +إضاءات +إضاءة +إضاءتها +إضاعة +إضافات +إضافة +إضافته +إضافتها +إضافي +إضافيا +إضافياً +إضافية +إضحاكا +إضحكاك +إضراب +إضعاف +إضفاء +إطار +إطارا +إطارات +إطاره +إطارها +إطارًا +إطاعة +إطالة +إطباقية +إطعام +إطلاع +إطلاق +إطلاقا +إطلاقاً +إطلاقه +إطلاقها +إطلاقًا +إطلالة +إطلالها +إطلع +إطماء +إظهار +إعادة +إعادته +إعادتها +إعاقات +إعاقة +إعاقتهم +إعالة +إعتقال +إعتقالات +إعجاب +إعجابا +إعجاباً +إعجابنا +إعجابه +إعجابهم +إعجابي +إعجاز +إعجازه +إعجازًا +إعداد +إعدادا +إعداداً +إعدادنا +إعداده +إعدادها +إعدادي +إعدادية +إعدام +إعراضا +إعصار +إعطاء +إعطاءه +إعطاؤها +إعطائه +إعطائها +إعطائي +إعلام +إعلاما +إعلامي +إعلاميا +إعلامياً +إعلامية +إعلان +إعلانا +إعلانات +إعلاناتها +إعلاناً +إعلانحالة +إعلانه +إعلانها +إعلانية +إعمار +إعوام +إف +إفادة +إفادتنا +إفتراضية +إفراديا +إفرادية +إفراز +إفرازا +إفرازات +إفرازاتها +إفرازه +إفراط +إفريقي +إفريقيا +إفريقية +إفساح +إفساد +إفشال +إفضاءً +إفطار +إفطارها +إفطارهم +إفلاس +إفهامكِ +إقالة +إقامة +إقامةٍ +إقامتنا +إقامته +إقامتها +إقامتهم +إقامتي +إقبال +إقبالا +إقبالاً +إقباله +إقتحم +إقتناء +إقحام +إقحامها +إقدام +إقرأ +إقرأها +إقرار +إقرارات +إقراره +إقصاء +إقطاعك +إقطاعي +إقفال +إقفل +إقلاع +إقلاعها +إقليدس +إقليم +إقليمنا +إقليمه +إقليمي +إقليمية +إقليميًا +إقناع +إقناعه +إقناعها +إقناعي +إقناعًا +إكبار +إكبارنا +إكرام +إكس +إكسفورد +إكسون +إكسير +إكليلاً +إكمال +إكماله +إكوداتاس +إكوفيول +إلا +إلاسلام +إلاك +إلاً +إلاّ +إلاَّ +إلبي +إلتزام +إلحاح +إلحاق +إلحاقه +إلحاقهم +إلخ +إلزام +إلزامي +إلزاميا +إلزامية +إلصاق +إلـي +إلقاء +إلقائها +إلكترون +إلكتروني +إلكترونيا +إلكترونياً +إلكترونية +إلكتريك +إلمام +إلماما +إلماماً +إلمامه +إله +إلها +إلهاب +إلهام +إلهامه +إلهامي +إلهي +إلهية +إلهًا +إلويار +إلى +إلىموقع +إلىه +إلي +إلياذة +إلياس +إليجا +إليجانز +إليزابيث +إليش +إليك +إليكم +إليكِ +إلينا +إلينوي +إليه +إليها +إليهم +إليهما +إليهن +إليوت +إليّ +إليّا +إليَّ +إم +إما +إماتة +إمارات +إماراتهم +إمارة +إماطة +إمالة +إمام +إماما +إماماً +إمبابي +إمبراطور +إمبراطورا +إمبراطوراً +إمبراطورية +إمتاعاً +إمداد +إمدادات +إمرأة +إمراضية +إمرة +إمرتها +إمرسون +إمساك +إمساكها +إمعانا +إمكان +إمكانات +إمكاناته +إمكاناتها +إمكاناتي +إمكانه +إمكانيات +إمكانياتك +إمكانياتها +إمكانياتي +إمكانية +إملاءاته +إمناء +إمنيد +إميل +إميلشيل +إميلي +إمّا +إن +إنا +إناء +إناث +إناثها +إناس +إنبات +إنباتية +إنت +إنتاج +إنتاجا +إنتاجاً +إنتاجنا +إنتاجه +إنتاجها +إنتاجهم +إنتاجي +إنتاجية +إنتاجيتهم +إنتاجيًّا +إنتانات +إنتانه +إنتركونتيننتال +إنتركونتيننتنال +إنترنت +إنتلاقى +إنتهى +إنتو +إنتوا +إنثاريو +إنج +إنجاب +إنجابه +إنجاح +إنجاز +إنجازا +إنجازات +إنجازاته +إنجازاتها +إنجازاً +إنجازك +إنجازه +إنجازها +إنجازًا +إنجلترا +إنجليز +إنجليزي +إنجليزية +إنجنيت +إنجيل +إنجيلية +إنخفاض +إنخفضت +إندس +إندونيسيا +إندونيسياً +إنديرا +إنذار +إنذارات +إنذاراً +إنروح +إنزال +إنزيم +إنساكيويو +إنسان +إنسانا +إنساناً +إنسانة +إنساننا +إنساني +إنسانيا +إنسانية +إنسانيته +إنسانيتها +إنسانيتهم +إنسانيتي +إنسانيّ +إنسانًا +إنشاء +إنشاءات +إنشاءها +إنشاؤها +إنشائه +إنشائها +إنشائية +إنشادها +إنضاجه +إنطاق +إنطلاقه +إنطلق +إنعاش +إنـه +إنفاق +إنفاقهم +إنفاقهما +إنفاقي +إنفو +إنقاذ +إنقاذهم +إنقاص +إنك +إنكار +إنكاره +إنكارها +إنكلترا +إنكم +إنما +إنماء +إنمائي +إنمائية +إننا +إننى +إنني +إنه +إنها +إنهاء +إنهائه +إنهاض +إنهم +إنهما +إنهن +إنوسنت +إنوما +إني +إنيرجي +إنّ +إنّما +إنّنا +إنّها +إنّي +إنَّ +إنَّه +إنَّها +إهانات +إهانة +إهتمامها +إهدأ +إهداء +إهدائه +إهدار +إهدارا +إهلاك +إهلرس +إهمال +إهمالاً +إهمالنا +إهماله +إهمالها +إهمالهما +إهمالي +إهي +إي +إياد +إياك +إياكم +إياه +إياها +إيبا +إيبرت +إيبــرت +إيتش +إيثيل +إيجابا +إيجاباً +إيجابي +إيجابيا +إيجابيات +إيجابياته +إيجابياً +إيجابية +إيجاد +إيجار +إيجارا +إيجاراتها +إيجاز +إيجبتومانيا +إيجور +إيجيبت +إيحاء +إيحاءات +إيداعها +إيديولوجيا +إيديولوجية +إيذاء +إيذائي +إيذان +إيذانا +إيذاناً +إيرادات +إيراداته +إيراداتها +إيراده +إيران +إيراني +إيرانيا +إيرانية +إيرباص +إيربيل +إيرفورت +إيرل +إيرلاينز +إيرنست +إيروس +إيزابيلا +إيسلي +إيش +إيشلون +إيصال +إيصالها +إيضاح +إيضاحا +إيطالي +إيطاليا +إيطالية +إيفان +إيفانز +إيفرن +إيقاظنا +إيقاظه +إيقاع +إيقاعاتها +إيقاعه +إيقاف +إيقافه +إيقافها +إيقافهم +إيكونوميا +إيلات +إيلاج +إيلاماً +إيلوارد +إيليا +إيلينوي +إيماءة +إيمائي +إيمان +إيمانا +إيماناً +إيماننا +إيمانه +إيمانها +إيمانهم +إيماني +إيمانية +إيملي +إيميت +إيميل +إيندهوفن +إينشتاين +إينوزين +إيني +إيه +إيها +إيوا +إيوان +إيوتروفاس +إيوجين +إِلاَّ +إِنَّ +إِنَّا +ئروتنا +ئز +ا +اآسيوية +اؤلئك +ائتلاف +ااقواسم +االتي +االخاصة +ابتدأ +ابتداء +ابتداءً +ابتدائية +ابتداع +ابتدع +ابتدعتها +ابتدعه +ابتسامة +ابتسامتكِ +ابتسامته +ابتسم +ابتسمت +ابتسمنا +ابتعاث +ابتعاد +ابتعاده +ابتعادها +ابتعث +ابتعثت +ابتعثوا +ابتعد +ابتعدت +ابتعدتِ +ابتكار +ابتكاراً +ابتكر +ابتكرت +ابتكرته +ابتكرتها +ابتلاع +ابتلاعها +ابتلع +ابتلعت +ابتلعتها +ابتلعه +ابتلعها +ابتلَّت +ابتنى +ابتهج +ابتهجت +ابحث +ابحثْ +ابدت +ابدى +ابذلوا +ابراهيم +ابريق +ابق +ابقى +ابل +ابن +ابنا +ابناً +ابنة +ابنتان +ابنتك +ابنتنا +ابنته +ابنتها +ابنتهما +ابنتي +ابنك +ابنه +ابنها +ابنى +ابني +ابنٌ +ابوالعتاهية +ابيب +ابيض +ابيضاض +اة +ات +اتباع +اتباعه +اتباعها +اتبع +اتبعت +اتبعتُها +اتبعنا +اتبعني +اتبعه +اتبعها +اتجاه +اتجاها +اتجاهات +اتجاهاتها +اتجاهاتهم +اتجاهه +اتجاهها +اتجاهين +اتجه +اتجهت +اتجهنا +اتجهوا +اتحاد +اتحدت +اتحدوا +اتخ +اتخاذ +اتخاذه +اتخاذها +اتخذ +اتخذت +اتخذته +اتخذتها +اتخذتْ +اتخذه +اتخذها +اتخذوا +اتخذوه +اتخيل +اتركها +اتركوا +اتركونا +اتركوني +اتركيني +اتزان +اتزانه +اتزانها +اتساخ +اتساع +اتساعا +اتساعاً +اتساعه +اتساعهما +اتساق +اتسخ +اتسع +اتسعت +اتسم +اتسمت +اتصاري +اتصال +اتصالا +اتصالات +اتصالاته +اتصالنا +اتصاله +اتصالها +اتصالين +اتصل +اتصلت +اتصلوا +اتضح +اتضحت +اتعيش +اتفاق +اتفاقا +اتفاقات +اتفاقاً +اتفاقيات +اتفاقية +اتفاقيه +اتفق +اتفقا +اتفقت +اتفقنا +اتفقوا +اتقائها +اتقوا +اتكأت +اتكأنا +اتكاءة +اتمختري +اتمنى +اتهام +اتهامات +اتهامنا +اتهامه +اتهم +اتهمت +اتهمه +اتهمها +اتهموا +اتهموه +اتيامبل +اتّجاه +اتّحاد +اتّخذت +اتّسع +اتّصال +اتَّجه +اتِّزانه +اثارتني +اثباتات +اثبت +اثنا +اثناء +اثنان +اثنتان +اثنتي +اثنتين +اثنى +اثني +اثنين +اثير +اجابات +اجت +اجتاح +اجتاحت +اجتاحها +اجتازت +اجتازتا +اجتذاب +اجتذبت +اجتذبك +اجترأ +اجتزنا +اجتماع +اجتماعا +اجتماعات +اجتماعاته +اجتماعاً +اجتماعنا +اجتماعهم +اجتماعي +اجتماعيا +اجتماعياً +اجتماعية +اجتماعيًا +اجتماعيًّا +اجتمع +اجتمعا +اجتمعت +اجتمعوا +اجتهاد +اجتهادات +اجتهاداته +اجتهاداتهم +اجتهادي +اجتهادية +اجتهادًا +اجتهد +اجتهدت +اجتياح +اجتياحا +اجتياحه +اجتياحها +اجتياز +اجر +اجراء +اجراءات +اجريت +اجل +اجلس +اجلستني +اجمعهما +اجهزة +اح +احبك +احبهم +احتاج +احتاجت +احتار +احتاروا +احتاط +احتباس +احتج +احتجاج +احتجاجا +احتجاجات +احتجاجي +احتجبت +احتجت +احتجزنا +احتجنا +احتدام +احتدّ +احتذوا +احتذيا +احترار +احتراف +احتراق +احتراقها +احترام +احتراما +احتراماً +احترامها +احترامًا +احترفت +احترقت +احترم +احتساء +احتسبت +احتشاء +احتشائية +احتشام +احتشد +احتضان +احتضانهم +احتضن +احتضنت +احتضنه +احتضنونا +احتفاء +احتفاظ +احتفاظه +احتفال +احتفالا +احتفالات +احتفالي +احتفاليا +احتفالية +احتفالين +احتفظ +احتفظت +احتفظوا +احتفل +احتفلت +احتفلوا +احتفى +احتقار +احتقان +احتكار +احتكاك +احتكاكه +احتكاكهم +احتل +احتلال +احتلالها +احتلالهم +احتلالية +احتلت +احتلتها +احتله +احتلها +احتمال +احتمالات +احتمالاته +احتمالاً +احتمل +احتواء +احتواءً +احتوائه +احتواه +احتواها +احتوت +احتياجات +احتياجاتنا +احتياجاته +احتياجاتها +احتياجاتهم +احتياجاتي +احتياجاً +احتياجهم +احتياطات +احتياطي +احتياطياً +احتياطيها +احجارها +احجية +احد +احداث +احداثاً +احداهما +احدث +احدق +احدهم +احدهما +احدى +احزر +احساس +احضار +احضر +احضرت +احضري +احـتياجات +احفظ +احمد +احمر +احمرار +احمرارا +احمرّت +احمل +احيانا +احيي +اخ +اخباره +اخبريني +اختار +اختارت +اختارتني +اختارته +اختارني +اختاره +اختارها +اختارهم +اختاروا +اختاروني +اختاري +اختبآ +اختبأ +اختباء +اختبار +اختبارا +اختبارات +اختباران +اختبارها +اختبرت +اختتم +اختر +اختراع +اختراعا +اختراعات +اختراعاته +اختراعاتها +اختراعاتهم +اختراعاً +اختراعه +اختراعي +اختراعًا +اختراق +اختراقات +اختراقاً +اختراقه +اختراقها +اخترت +اخترتُ +اخترتُها +اخترع +اخترعته +اخترعه +اخترق +اخترقت +اخترقتُ +اخترنا +اخترناها +اختزال +اختزالية +اختزان +اختزل +اختزنت +اختزنتها +اختصار +اختصارا +اختصاراً +اختصارها +اختصارهم +اختصاص +اختصاصاته +اختصاصاتها +اختصاصه +اختصاصها +اختصاصهم +اختصاصي +اختصاصيين +اختصتهم +اختصر +اختصرت +اختصرنا +اختضَّ +اختط +اختطفته +اختطفه +اختطفهم +اختطه +اختطها +اختفاء +اختفاءها +اختفت +اختفى +اختك +اختلاء +اختلاجات +اختلاط +اختلاطات +اختلاطاته +اختلاطاتها +اختلاف +اختلافا +اختلافات +اختلافها +اختلافهم +اختلال +اختلالات +اختلت +اختلط +اختلطت +اختلف +اختلفا +اختلفت +اختلفنا +اختلفوا +اختمرت +اختناق +اختناقاً +اختناقي +اختيار +اختيارا +اختيارات +اختياراته +اختياره +اختيارها +اختيارهم +اختياري +اختياريا +اختيارين +اختير +اختيرت +اخذتموهما +اخذته +اخراجها +اخرج +اخرى +اخصم +اخضرارًا +اخطأ +اخطر +اخطف +اخطفهم +اخفاء +اخماد +اخوتي +اخيرا +اد +ادار +ادارة +ادارتها +ادخرته +ادخرك +ادخل +ادركتهم +ادري +ادع +ادعاء +ادعاءات +ادعاءاتها +ادعاءاتهم +ادعائه +ادعم +ادعى +ادفع +اذ +اذا +اذاً +اذنا +اذهاننا +اذهب +اذهبوا +اذهبي +ار +ارابيس +ارادت +ارادتها +ارادتي +اراديا +اربطه +ارة +ارتأينا +ارتباط +ارتباطا +ارتباطات +ارتباطاته +ارتباطاً +ارتباطه +ارتباطها +ارتباطًا +ارتباك +ارتباكا +ارتبط +ارتبطت +ارتبكت +ارتجاعاته +ارتجفت +ارتحالي +ارتحت +ارتحل +ارتحلت +ارتحلنا +ارتخاء +ارتد +ارتداء +ارتداءالقفّازات +ارتداءه +ارتدائه +ارتدائها +ارتدادا +ارتدته +ارتدوا +ارتسمت +ارتشاحات +ارتضوا +ارتضى +ارتطام +ارتطامه +ارتطمت +ارتعاشات +ارتعبنا +ارتعش +ارتعشت +ارتفاع +ارتفاعا +ارتفاعات +ارتفاعاتها +ارتفاعاً +ارتفاعه +ارتفاعها +ارتفاعًا +ارتفع +ارتفعت +ارتقاء +ارتقت +ارتكاب +ارتكاز +ارتكازه +ارتكاس +ارتكاسات +ارتكب +ارتكبت +ارتكبتها +ارتكبناها +ارتكبه +ارتكبها +ارتكبوا +ارتكبوه +ارتكبوها +ارتكز +ارتكزت +ارتوازية +ارتويا +ارتياب +ارتيابا +ارتيابه +ارتياح +ارتياد +ارتيادها +ارحم +اردت +ارسم +ارضاً +ارضى +ارفع +ارفعي +اركيتكتشر +ارماند +ارنست +ارهاب +ارى +اريد +اريه +اريو +ازاحتها +ازداد +ازدادت +ازدادوا +ازدحام +ازدحاما +ازدحمت +ازددت +ازدهار +ازدهارا +ازدهاراً +ازدهارها +ازدهارهم +ازدهر +ازدهرت +ازدواج +ازدواجية +ازدياد +ازديادا +ازدياداً +ازرق +ازور +ازيل +اس +اسأل +اسألوا +اسألي +اسئلة +اسابيع +اساسات +اسبريتوس +استأثرت +استأجر +استأجرت +استأذنا +استأذنت +استأذنتها +استأنف +استئجار +استئذان +استئصال +استئصالها +استئصلت +استئناف +استاذ +استاذنتني +استانبول +استباحة +استباق +استبدال +استبدالها +استبدل +استبدلوا +استبطان +استبعاد +استبعادنا +استبعاده +استبعادهم +استبعد +استبعدتها +استبيانات +استثار +استثارة +استثمار +استثمارات +استثماراتها +استثماراً +استثمارياً +استثمارية +استثناء +استثناءات +استثنائي +استثنائية +استثنينا +استثير +استجاب +استجاباته +استجابة +استجابت +استجابته +استجابتها +استجار +استجداء +استجلاء +استجماع +استجمعت +استجوابهم +استجوب +استجوبت +استحال +استحالة +استحث +استحداث +استحدث +استحدثت +استحدثنا +استحدثوا +استحسان +استحسنت +استحسنتها +استحصال +استحضاراً +استحق +استحقاق +استحقاقاً +استحقاقًا +استحمام +استحمامه +استحوذ +استخدام +استخداما +استخدامات +استخدامه +استخدامها +استخدامهم +استخدامي +استخدامًا +استخدم +استخدما +استخدمت +استخدمته +استخدمتها +استخدمنا +استخدمه +استخدمها +استخدموا +استخدموها +استخذم +استخراج +استخراجه +استخرج +استخرجتها +استخلاص +استخلاصه +استخلصته +استخلصتها +استخلصوا +استدار +استدارة +استدارت +استدراجه +استدراكية +استدرج +استدرك +استدرّ +استدعاء +استدعاني +استدعاه +استدعت +استدعته +استدعوني +استدعى +استدعيت +استدلالات +استديو +استذكار +استراتيجي +استراتيجيا +استراتيجيات +استراتيجياً +استراتيجية +استراحات +استراحة +استراليا +استرجاع +استرجاعات +استرجاعها +استرجع +استرجعت +استرحام +استرحتم +استرحنا +استرخاء +استرخائه +استرخت +استرخى +استرخي +استرد +استرداد +استرداده +استرداف +استردته +استرده +استردّوا +استرشدت +استرعاهم +استرعت +استرعى +استرعيا +استرق +استرليني +استزادة +استزراع +استزلامياً +استسلام +استسلامهم +استسلم +استسلمت +استسهال +استشارات +استشارة +استشارت +استشارته +استشارى +استشاري +استشراف +استشراقي +استشراقية +استشرت +استشعرت +استشفاء +استشفاف +استشهاد +استشهادي +استشهادية +استشهد +استشهدنا +استشهدوا +استصدارها +استصلاح +استصناع +استضاف +استضافة +استضافت +استضافته +استضافنا +استضافه +استضافهم +استطاع +استطاعا +استطاعت +استطاعتي +استطاعوا +استطباب +استطعت +استطعن +استطعنا +استطلاع +استطلاعات +استطلاعنا +استطلاعية +استطلع +استطيع +استعاد +استعادة +استعادتها +استعادوا +استعار +استعارة +استعارها +استعان +استعانت +استعانوا +استعد +استعداد +استعدادا +استعدادات +استعداداتكم +استعداداتنا +استعداده +استعدادها +استعدادي +استعدادًا +استعدت +استعذت +استعراب +استعراض +استعراضها +استعرض +استعصائي +استعصيت +استعمار +استعمارا +استعمارياً +استعمارية +استعمال +استعماله +استعمالها +استعمالهما +استعمل +استعملت +استعملوا +استعنا +استعنت +استفاد +استفادة +استفادت +استفاده +استفادوا +استفاق +استفاقة +استفتاء +استفتائه +استفحالها +استفدت +استفرد +استفزازي +استفزه +استفسار +استفسارات +استفهام +استقاء +استقال +استقالة +استقالت +استقالته +استقامة +استقبال +استقبالنا +استقبالهم +استقبالهما +استقبل +استقبلت +استقبلتنا +استقبلنا +استقبله +استقبلها +استقبلوا +استقدام +استقدم +استقر +استقراء +استقرائهم +استقرار +استقرارها +استقرت +استقروا +استقرّ +استقصاءات +استقصائية +استقصى +استقطاب +استقلابية +استقلال +استقلاله +استقلالها +استقلالية +استقى +استكشاف +استكشافها +استكشافية +استكشف +استكمال +استكمالا +استكمالاً +استكماله +استكمالها +استكمله +استكهولم +استلاب +استلام +استلقاء +استلقت +استلقى +استلهام +استلهم +استماع +استمالة +استمالتهم +استمتاع +استمتع +استمتعنا +استمد +استمدت +استمدها +استمر +استمرءوا +استمرار +استمرارا +استمراره +استمرارها +استمرارية +استمرارًا +استمرت +استمررت +استمرَّ +استمع +استمعت +استمعنا +استمعوا +استملاك +استناد +استنادا +استناداً +استنادها +استنارة +استنبات +استنباط +استنباطا +استنبول +استنتاج +استنتاجات +استنتاجاتهم +استنتاجاً +استنتاجية +استنتجها +استنجدت +استند +استندت +استندوا +استنزاف +استنساخ +استنساخها +استنشاق +استنشاقها +استنفاذ +استنفدت +استنفدوا +استنقاذ +استنكار +استنهضه +استهداف +استهدف +استهدفت +استهدفته +استهل +استهلاك +استهلاكه +استهلاكها +استهلاكهم +استهلاكية +استهلاله +استهلك +استهلكت +استهلكها +استهلها +استهوت +استهوتني +استواء +استوائية +استوحاه +استوحى +استوحيت +استودع +استودعتكم +استوديو +استوردت +استوطنوا +استوعبا +استوعبت +استوعبوا +استوقفت +استوقفتني +استوقفتها +استوقفه +استوكهولم +استولت +استولوا +استولى +استولينا +استيراد +استيرادها +استيطان +استيطانه +استيطانياً +استيعاب +استيعابا +استيعابه +استيعابها +استيفاء +استيفائها +استيفن +استيقاظه +استيقظ +استيقظت +استيكو +استينوف +استيهاماته +استُخرج +استُشهد +اسجدوا +اسحق +اسطبل +اسطبله +اسطنبول +اسطوانات +اسطوانة +اسع +اسفل +اسفلتي +اسكتلندي +اسكتي +اسكندرونة +اسكوتلانديارد +اسكوتوس +اسلام +اسم +اسما +اسماء +اسماءها +اسماعيل +اسمان +اسماه +اسماً +اسمتر +اسمحي +اسمع +اسمعني +اسمعي +اسمعيني +اسمك +اسمكِ +اسمنت +اسمنتية +اسمه +اسمها +اسمي +اسميها +اسمٌ +اسمٍ +اسندتها +اسودّت +اسيتات +اسيد +اسيرى +اش +اشار +اشارة +اشتاق +اشتباه +اشتد +اشتداد +اشتدت +اشتدّ +اشتدّت +اشتراك +اشتراكا +اشتراكها +اشتراكهم +اشتراكي +اشتراكياً +اشتراه +اشتراها +اشترت +اشترتها +اشترك +اشتركت +اشتركوا +اشتروها +اشترى +اشتريت +اشتريتها +اشتعالا +اشتعالاً +اشتعل +اشتق +اشتقاق +اشتقوا +اشتكى +اشتمت +اشتمل +اشتملت +اشتهر +اشتهرت +اشتهروا +اشتهيت +اشتياق +اشجار +اشخاص +اشعار +اشعر +اشعل +اشكاليات +اشكول +اشمأزت +اشياء +اصابة +اصابتهم +اصابع +اصابعى +اصبح +اصبحت +اصداراتها +اصرف +اصطاد +اصطاده +اصطحابه +اصطحابها +اصطحب +اصطحباه +اصطحبته +اصطحبتها +اصطحبه +اصطدام +اصطدامك +اصطدامنا +اصطدتها +اصطدم +اصطدمت +اصطفاك +اصطلاح +اصطلاحا +اصطلاحات +اصطلاحيا +اصطلاحية +اصطلح +اصطناع +اصطناعي +اصطناعية +اصطياد +اصعب +اصعدي +اضافة +اضخمه +اضطر +اضطراب +اضطرابا +اضطرابات +اضطرار +اضطرارا +اضطراري +اضطرت +اضطرتها +اضطررت +اضطرني +اضطرها +اضطروا +اضطلاع +اضطهاد +اضطهاداً +اضطهد +اضطُرَّ +اضعافها +اضمحل +اضمحلال +اطراد +اطرد +اطردوا +اطلاع +اطلاعا +اطلاعكم +اطلاعه +اطلاعهم +اطلاعي +اطلب +اطلع +اطلعت +اطلعنا +اطلعوا +اطلق +اطمأن +اطمأنت +اطمأنوا +اطمئن +اطمئنان +اطماعاً +اطنان +اظهار +اعادت +اعتاد +اعتادت +اعتادها +اعتادوا +اعتادوه +اعتاض +اعتبار +اعتبارا +اعتبارات +اعتباراً +اعتبارنا +اعتباره +اعتبارها +اعتبارهم +اعتبارهما +اعتباري +اعتبارياً +اعتبارية +اعتبارًا +اعتبر +اعتبرت +اعتبرته +اعتبرتُ +اعتبرنا +اعتبرناه +اعتبره +اعتبرها +اعتبروها +اعتداءاتهم +اعتدال +اعتدت +اعتدلت +اعتدن +اعتدنا +اعتذار +اعتذارهم +اعتذر +اعتذرت +اعتذروا +اعتراض +اعتراضات +اعتراضاته +اعتراضه +اعتراف +اعترافا +اعترافات +اعترافاتهم +اعترافاً +اعترافهم +اعتراني +اعتراها +اعترت +اعترته +اعترض +اعترضت +اعترضتهم +اعترضوا +اعترف +اعترفا +اعترفت +اعترفن +اعتزازا +اعتزل +اعتصامات +اعتصمت +اعتقاد +اعتقادا +اعتقادنا +اعتقاده +اعتقادها +اعتقادي +اعتقادًا +اعتقال +اعتقالات +اعتقالاً +اعتقاله +اعتقالها +اعتقد +اعتقدا +اعتقدت +اعتقدوا +اعتقل +اعتقلت +اعتقله +اعتقلوا +اعتقلوني +اعتكاف +اعتلال +اعتلت +اعتلى +اعتليت +اعتلينا +اعتماد +اعتمادا +اعتماداً +اعتمادك +اعتماده +اعتمادها +اعتمادي +اعتمادًا +اعتمت +اعتمد +اعتمدت +اعتمدته +اعتمدها +اعتناء +اعتناقها +اعتنق +اعتنقوا +اعتنوا +اعتورنا +اعتيادي +اعتيادية +اعتَدْ +اعتُقل +اعجابه +اعداد +اعذرني +اعذروا +اعراض +اعرض +اعرفي +اعزائي +اعش +اعطهم +اعـتباراً +اعلق +اعلى +اعمالنا +اعمل +اعملها +اعوجاج +اعوجَّ +اعياد +اعية +افتاي +افتتاح +افتتاحه +افتتاحها +افتتاحيات +افتتاحية +افتتاحيتها +افتتح +افتتحت +افتتحها +افتتحوها +افتح +افتخاري +افتراء +افتراسي +افتراض +افترشوها +افترض +افترضنا +افتضاح +افتقاد +افتقاده +افتقار +افتقاره +افتقدت +افتقده +افتقر +افتيح +افتُعلتْ +افرنج +افصلوا +اق +اقاليم +اقامته +اقبر +اقتباسها +اقتبس +اقتبست +اقتبسها +اقتحام +اقتحم +اقتحما +اقتحمت +اقتحمه +اقتحموا +اقتحموها +اقتراب +اقترابا +اقترابه +اقترابي +اقترابًا +اقتراح +اقتراحات +اقتراحه +اقتراحي +اقتراحًا +اقترانه +اقترانها +اقترب +اقتربت +اقتربنا +اقترح +اقترحت +اقترحنا +اقترحه +اقترفنا +اقترن +اقترنت +اقتسار +اقتسمتا +اقتسموا +اقتصاد +اقتصادات +اقتصاداتها +اقتصاداً +اقتصادنا +اقتصاده +اقتصادى +اقتصادي +اقتصاديا +اقتصاديات +اقتصادياته +اقتصادياتها +اقتصادياً +اقتصادية +اقتصاديون +اقتصاديين +اقتصاديًا +اقتصار +اقتصارها +اقتصاي +اقتصر +اقتصرت +اقتضب +اقتضت +اقتضته +اقتضى +اقتطاع +اقتفاء +اقتفيت +اقتلاع +اقتلع +اقتناء +اقتنائه +اقتناع +اقتناه +اقتناها +اقتنص +اقتنصنا +اقتنع +اقتنعنا +اقتنى +اقتنيته +اقرأ +اقرب +اقصد +اقصدها +اقعد +اقفز +اقل +اقليم +اقناعه +اقنعت +اكبر +اكتئابه +اكتراث +اكتساب +اكتسابها +اكتسب +اكتسبت +اكتسبته +اكتسبتها +اكتسبه +اكتسبها +اكتسبوا +اكتسحها +اكتسى +اكتشاف +اكتشافات +اكتشافه +اكتشافها +اكتشافهم +اكتشافي +اكتشف +اكتشفت +اكتشفتها +اكتشفنا +اكتشفه +اكتشفها +اكتشفوا +اكتظاظها +اكتظت +اكتف +اكتفت +اكتفوا +اكتفى +اكتفي +اكتمال +اكتماله +اكتمل +اكتنف +اكتوى +اكتُشف +اكثر +اكزيما +اكس +اكسبريس +اكسبيرينس +اكستر +اكليل +اكنس +اكوره +ال +الآباء +الآبار +الآبدة +الآتون +الآتي +الآتية +الآتين +الآتيه +الآثار +الآثاريون +الآثر +الآثرية +الآجال +الآجر +الآجل +الآحاد +الآخاذ +الآخذ +الآخذة +الآخر +الآخران +الآخرة +الآخرون +الآخرين +الآداب +الآدمي +الآدميات +الآدمية +الآدميين +الآذان +الآذن +الآراء +الآرامية +الآراميين +الآزوت +الآستانة +الآسر +الآسرة +الآسن +الآسيا +الآسيوي +الآسيوية +الآسيويين +الآشوري +الآشورية +الآشوريين +الآف +الآفات +الآفاق +الآفة +الآفل +الآفلة +الآكشن +الآلات +الآلاف +الآلام +الآلة +الآلهة +الآلي +الآليات +الآلية +الآمال +الآمان +الآمرة +الآمن +الآمنة +الآن +الآنسة +الآنف +الآنفة +الآني +الآنية +الآنْ +الآه +الآهلة +الآونة +الآي +الآيات +الآياتا +الآية +الآيس +الأئمة +الأب +الأباتشي +الأباجورات +الأباطرة +الأبجدي +الأبجدية +الأبجورات +الأبحاث +الأبخرة +الأبخس +الأبد +الأبداعية +الأبدي +الأبدية +الأبراج +الأبراح +الأبرار +الأبراص +الأبرياء +الأبستان +الأبسطة +الأبسيسيك +الأبصار +الأبطال +الأبعاد +الأبعد +الأبقار +الأبناء +الأبنية +الأبهة +الأبهى +الأبواب +الأبوة +الأبوي +الأبوية +الأبوين +الأبيات +الأبيض +الأتابك +الأتابكة +الأتاري +الأتراك +الأتربة +الأتو +الأتوبيس +الأتوبيسات +الأتوجرافات +الأثاث +الأثر +الأثري +الأثرياء +الأثرية +الأثريون +الأثريين +الأثقال +الأثمان +الأثناء +الأثواب +الأثير +الأثيرة +الأثيني +الأجانب +الأجبان +الأجداد +الأجدر +الأجدى +الأجراس +الأجرام +الأجرة +الأجزاء +الأجساد +الأجسام +الأجش +الأجفان +الأجل +الأجلين +الأجمل +الأجناس +الأجنبى +الأجنبي +الأجنبية +الأجنة +الأجنحة +الأجندة +الأجهزة +الأجواء +الأجوبة +الأجور +الأجيال +الأجير +الأحادي +الأحاديث +الأحاسيس +الأحافير +الأحايين +الأحباس +الأحبة +الأحجار +الأحجام +الأحجبة +الأحد +الأحداث +الأحداق +الأحدث +الأحذية +الأحرار +الأحراش +الأحرف +الأحرى +الأحزاب +الأحزان +الأحساء +الأحشاء +الأحطاب +الأحـجام +الأحـمر +الأحفاد +الأحفورة +الأحفوري +الأحفورية +الأحق +الأحقاد +الأحكام +الأحلام +الأحماض +الأحمد +الأحمر +الأحناف +الأحواش +الأحواض +الأحوال +الأحياء +الأحيائي +الأحيان +الأحيدوس +الأخ +الأخاذ +الأخبار +الأخت +الأخدود +الأخذ +الأخر +الأخرس +الأخروية +الأخرى +الأخري +الأخريات +الأخشاب +الأخص +الأخضر +الأخطاء +الأخطار +الأخطبوطات +الأخلاف +الأخلاق +الأخلاقي +الأخلاقية +الأخماج +الأخوات +الأخوة +الأخوي +الأخوين +الأخيار +الأخير +الأخيرة +الأخيرين +الأخّاذ +الأداء +الأداب +الأداة +الأدب +الأدباء +الأدبار +الأدبي +الأدبية +الأدبين +الأدراج +الأدرم +الأدرياتيكي +الأدعي +الأدعياء +الأدعية +الأدلة +الأدمة +الأدن +الأدنى +الأدوات +الأدوار +الأدونيسية +الأدوية +الأديان +الأديب +الأديبات +الأديبان +الأديبة +الأديرة +الأذان +الأذكار +الأذكى +الأذكياء +الأذن +الأذنين +الأذهان +الأذواق +الأذى +الأذيات +الأذية +الأرائك +الأرابيسك +الأراجيح +الأراضى +الأراضي +الأرانب +الأرباح +الأربع +الأربعا +الأربعاء +الأربعة +الأربعمائة +الأربعون +الأربعين +الأربعينات +الأربعينيات +الأربلي +الأرثوذكسية +الأرجاء +الأرجح +الأرجل +الأرجنتين +الأرجنتينية +الأرجوان +الأرجي +الأرجية +الأرحام +الأرخبيل +الأرخص +الأردن +الأردني +الأردنيين +الأردية +الأرز +الأرزاق +الأرستقراطي +الأرستقراطية +الأرستقراطيين +الأرشيف +الأرصاد +الأرصدة +الأرصفة +الأرض +الأرضة +الأرضى +الأرضي +الأرضيات +الأرضية +الأرضين +الأرفف +الأرق +الأرقام +الأرقط +الأرقم +الأركان +الأرمن +الأرمني +الأرمنية +الأرميني +الأرمينية +الأرنب +الأرنونا +الأرواح +الأروعا +الأروقة +الأرياف +الأريبُ +الأريحية +الأريكة +الأزبكية +الأزد +الأزدي +الأزرار +الأزرق +الأزرقين +الأزقة +الأزل +الأزلية +الأزمات +الأزمان +الأزمة +الأزمنة +الأزهار +الأزهر +الأزهري +الأزهرية +الأزهريين +الأزواج +الأزياء +الأزيز +الأسئلة +الأسابيع +الأساتذة +الأساس +الأساسي +الأساسيات +الأساسيان +الأساسية +الأساسيون +الأساسيين +الأساسيّة +الأساطير +الأساطيل +الأساقفة +الأساليب +الأسانيد +الأسباب +الأسباط +الأسباني +الأسبرجيليس +الأسبرين +الأسبق +الأسبقية +الأسبوع +الأسبوعي +الأسبوعية +الأسبوعين +الأستاذ +الأستاذان +الأستاذة +الأستاذية +الأستار +الأستخدام +الأسترالي +الأسترالية +الأستراليين +الأستوديو +الأسد +الأسدي +الأسر +الأسرار +الأسرارِ +الأسرة +الأسرتين +الأسرع +الأسرى +الأسري +الأسرية +الأسس +الأسطح +الأسطر +الأسطرِ +الأسطوات +الأسطوانات +الأسطوانة +الأسطواني +الأسطوانية +الأسطورة +الأسطورية +الأسطول +الأسطى +الأسعار +الأسعد +الأسف +الأسفار +الأسفل +الأسفلت +الأسفلتية +الأسفوني +الأسقف +الأسكتلندي +الأسكوريال +الأسلاف +الأسلاك +الأسلحة +الأسلم +الأسلوب +الأسلوبي +الأسلوبية +الأسماء +الأسماع +الأسماك +الأسمدة +الأسمر +الأسمك +الأسمنت +الأسمنتي +الأسمنتية +الأسمى +الأسنان +الأسهم +الأسوأ +الأسوار +الأسواق +الأسود +الأسيتون +الأسيرة +الأسيسكو +الأسينيين +الأسيوي +الأشاعرة +الأشاوش +الأشباح +الأشبه +الأشجار +الأشخاص +الأشد +الأشدّاء +الأشرار +الأشراف +الأشرف +الأشرفية +الأشرم +الأشعار +الأشعة +الأشعث +الأشقاء +الأشقياء +الأشكال +الأشهاد +الأشهر +الأشواق +الأشواك +الأشوريون +الأشياء +الأشيب +الأصابع +الأصالة +الأصبحي +الأصبع +الأصح +الأصحاء +الأصحاب +الأصدقاء +الأصص +الأصعب +الأصعدة +الأصفاد +الأصفار +الأصفر +الأصقاع +الأصل +الأصلي +الأصلية +الأصليون +الأصليين +الأصليّة +الأصمعي +الأصمعيات +الأصناف +الأصنام +الأصوات +الأصوب +الأصول +الأصولي +الأصولية +الأصيل +الأصيلة +الأضاحي +الأضحى +الأضحية +الأضخم +الأضداد +الأضرار +الأضلاع +الأضواء +الأطباء +الأطباءَ +الأطباق +الأطر +الأطراف +الأطرش +الأطروحة +الأطعمة +الأطفال +الأطلال +الأطلس +الأطلسي +الأطلسية +الأطلنطي +الأطماع +الأطنان +الأطواء +الأطوار +الأطوال +الأطول +الأطومات +الأطياف +الأظافر +الأعاجيب +الأعاصير +الأعالي +الأعباء +الأعجمي +الأعداء +الأعداد +الأعذار +الأعرابي +الأعراس +الأعراض +الأعراف +الأعراق +الأعرج +الأعرجي +الأعسال +الأعشاب +الأعشاش +الأعشى +الأعصاب +الأعضاء +الأعطيات +الأعظم +الأعلاف +الأعلام +الأعلى +الأعم +الأعمار +الأعماق +الأعمال +الأعمدة +الأعمق +الأعمى +الأعمّ +الأعناب +الأعناق +الأعواد +الأعوام +الأعور +الأعياء +الأعياد +الأعيان +الأعين +الأفئدة +الأفارقة +الأفاعي +الأفذاذ +الأفراح +الأفراخ +الأفراد +الأفران +الأفرقة +الأفرو +الأفريقي +الأفريقية +الأفضل +الأفعال +الأفق +الأفقا +الأفقي +الأفكار +الأفلاج +الأفلاك +الأفلام +الأفنان +الأفواج +الأفواه +الأفول +الأفيال +الأفيون +الأفّاقين +الأقارب +الأقاليم +الأقاويل +الأقحوانة +الأقدار +الأقداس +الأقدام +الأقدر +الأقدمون +الأقدميات +الأقراص +الأقران +الأقرب +الأقرع +الأقسام +الأقصاب +الأقصر +الأقصورة +الأقصى +الأقطاب +الأقطار +الأقفاص +الأقفال +الأقل +الأقلام +الأقليات +الأقلية +الأقلّ +الأقمار +الأقمر +الأقمشة +الأقنعة +الأقوال +الأقوى +الأقوياء +الأكادية +الأكاديمي +الأكاديميات +الأكاديمية +الأكاديين +الأكاذيب +الأكارم +الأكبر +الأكبرُ +الأكبـر +الأكتاف +الأكثر +الأكثرون +الأكثرية +الأكر +الأكريلامايد +الأكزيما +الأكسجة +الأكسجين +الأكسدة +الأكسية +الأكسير +الأكفاء +الأكل +الأكلات +الأكلة +الأكمل +الأكواب +الأكواخ +الأكواريوم +الأكوان +الأكوع +الأكياس +الأكيدة +الألب +الألباب +الألباستر +الألبان +الألباني +الألبسة +الألبومات +الألبومين +الألحان +الألسنة +الألسنية +الألعاب +الألف +الألفاظ +الألفة +الألفي +الألفية +الألفين +الألقاب +الألم +الألماس +الألمان +الألماني +الألمانية +الألمانيتين +الألمنيوم +الألمي +الألمية +الألواح +الألوان +الألوف +الألومنيوم +الألوية +الألياف +الأليف +الأليفة +الأليق +الأليم +الأم +الأماجد +الأماسي +الأماكن +الأمام +الأمامي +الأمامية +الأمان +الأمانات +الأمانة +الأماني +الأمة +الأمتار +الأمتعة +الأمثال +الأمثل +الأمثلة +الأمجاد +الأمد +الأمر +الأمراء +الأمراض +الأمرالذي +الأمركة +الأمريكان +الأمريكتين +الأمريكى +الأمريكي +الأمريكية +الأمريكيتين +الأمريكيون +الأمريكيين +الأمرين +الأمرُ +الأمرّين +الأمس +الأمسيات +الأمسية +الأمشاط +الأمصار +الأمطار +الأمعاء +الأمكنة +الأمل +الأملاح +الأملس +الأملَ +الأمم +الأممي +الأممية +الأمن +الأمناء +الأمنى +الأمني +الأمنيات +الأمنية +الأمهات +الأموات +الأمواج +الأموال +الأمور +الأمومة +الأمونيا +الأمونياك +الأموي +الأموية +الأمويون +الأمويين +الأميال +الأميانت +الأمية +الأمير +الأميرات +الأميرة +الأميركي +الأميركية +الأميري +الأميرية +الأميل +الأمين +الأمينات +الأمينة +الأمينية +الأميون +الأميين +الأميّة +الأمّارة +الأمّة +الأمّي +الأن +الأنا +الأنابيب +الأناجيل +الأناشيد +الأناضول +الأناضولي +الأناقة +الأنامل +الأناناس +الأناني +الأنانية +الأنباء +الأنبار +الأنبوب +الأنبوبي +الأنبوبية +الأنبيا +الأنبياء +الأنتاركتيكا +الأنترنت +الأنثراكس +الأنثوي +الأنثوية +الأنثى +الأنجلو +الأنجيوتنسين +الأنحاء +الأنداد +الأندر +الأندلس +الأندلسي +الأندلسية +الأندلسيين +الأندية +الأنزيم +الأنزيمات +الأنساب +الأنساق +الأنسام +الأنسب +الأنسجة +الأنسنة +الأنسولين +الأنسي +الأنشطة +الأنشوجة +الأنصار +الأنصاري +الأنصارية +الأنظار +الأنظمة +الأنف +الأنفا +الأنفاس +الأنفاق +الأنفس +الأنفلونزا +الأنفي +الأنفية +الأنقى +الأنماط +الأنهار +الأنواء +الأنواع +الأنوال +الأنوثة +الأنوف +الأنوفيليس +الأنياب +الأنيق +الأنيقة +الأنين +الأنيوليتي +الأنْهَارُ +الأهالى +الأهالي +الأهبل +الأهداف +الأهرام +الأهل +الأهلى +الأهلي +الأهلية +الأهم +الأهمية +الأهمّ +الأهواء +الأهوار +الأوائل +الأوابد +الأوامر +الأوان +الأواني +الأوبئة +الأوبرا +الأوبرتات +الأوبك +الأوتوستراد +الأوثان +الأوجاع +الأوجه +الأوحال +الأوحد +الأود +الأوراق +الأورام +الأوربــــية +الأوربي +الأوربيات +الأوربية +الأوربيون +الأوربيين +الأورج +الأوردية +الأوركسترا +الأوركسترالي +الأوركسترالية +الأوروبي +الأوروبية +الأوروبيون +الأوروبيين +الأوزان +الأوزبكية +الأوزون +الأوس +الأوساخ +الأوساط +الأوسط +الأوسع +الأوسكار +الأوسمة +الأوصاف +الأوصياء +الأوضاع +الأوطان +الأوعية +الأوفاتا +الأوفر +الأوفشور +الأوقات +الأوقاف +الأوكتيل +الأوكتينول +الأوكراني +الأوكرانية +الأوكرانيين +الأوكسجين +الأول +الأولاد +الأولـى +الأولمبية +الأولومبي +الأولومبية +الأولويات +الأولوية +الأولى +الأولي +الأولياء +الأوليات +الأولية +الأولين +الأولَ +الأوهام +الأوّل +الأوّلي +الأيادي +الأياس +الأيام +الأيامُ +الأيتام +الأيدروجين +الأيدروجينية +الأيدى +الأيدي +الأيديولوجي +الأيديولوجيا +الأيديولوجيات +الأيديولوجيان +الأيديولوجية +الأيسر +الأيقونات +الأيل +الأيمن +الأيوبي +الأيوبية +الأيوبيين +الأيّام +الإ +الإئتلافية +الإباء +الإباحية +الإباضة +الإبانة +الإبتعاد +الإبحار +الإبداع +الإبداعات +الإبداعي +الإبداعية +الإبر +الإبراهيم +الإبراهيمي +الإبرة +الإبصار +الإبط +الإبعاد +الإبقاء +الإبل +الإبنة +الإبهار +الإبهام +الإتجاه +الإتجاهات +الإتصال +الإتفاقيتين +الإتهام +الإثارات +الإثارة +الإثبات +الإثنان +الإثني +الإثنية +الإثنين +الإثيلي +الإثيلين +الإثيوبية +الإجابات +الإجابة +الإجازات +الإجازة +الإجبار +الإجباري +الإجبارية +الإجتماع +الإجتماعات +الإجتماعية +الإجحاف +الإجراء +الإجراءات +الإجرائي +الإجرام +الإجماع +الإجمالي +الإجمالية +الإجماية +الإجهاد +الإجهاض +الإحاطة +الإحالة +الإحباط +الإحتراق +الإحتياط +الإحتياطات +الإحداثيات +الإحدى +الإحساس +الإحسان +الإحصاء +الإحصاءات +الإحصائيات +الإحصائية +الإحـساس +الإحـصاءات +الإحياء +الإحيائي +الإخاء +الإخبارية +الإختبار +الإختبارات +الإختلاجات +الإختلاطات +الإخراج +الإخصائي +الإخصاب +الإخفاء +الإخفاق +الإخلاء +الإخلاص +الإخلال +الإخوان +الإخوة +الإدارات +الإدارة +الإدارى +الإداري +الإدارية +الإدانة +الإدخار +الإدراك +الإدريسي +الإدلاء +الإدماج +الإدمان +الإدهاش +الإدّعاء +الإذاعات +الإذاعة +الإذاعتين +الإذاعي +الإذاعية +الإذلال +الإذن +الإذهال +الإرادة +الإرباك +الإربي +الإربية +الإرتقاء +الإرث +الإرسال +الإرسالية +الإرشاد +الإرشادات +الإرشادي +الإرشادية +الإرضاع +الإرقاء +الإرهاب +الإرهابي +الإرهابية +الإرهابيين +الإرهاق +الإزالة +الإزدحام +الإزعاج +الإزعاجات +الإساءة +الإسبان +الإسباني +الإسبانية +الإسبانيين +الإستثنائي +الإستراتيجيات +الإستراتيجية +الإستعانة +الإستعداد +الإستفادة +الإستقرار +الإستهلاك +الإستيراتيجية +الإسراء +الإسرائيلي +الإسرائيليات +الإسرائيلية +الإسرائيليون +الإسرائيليين +الإسراع +الإسراف +الإسطرلاب +الإسطوانية +الإسعافات +الإسعافية +الإسفلت +الإسفنج +الإسفنجي +الإسكان +الإسكانية +الإسكندر +الإسكندرون +الإسكندرية +الإسكندريون +الإسكندريين +الإسلام +الإسلامبولى +الإسلاموفوبيا +الإسلامى +الإسلامي +الإسلامية +الإسلاميون +الإسلاميين +الإسماعيلية +الإسمنت +الإسناد +الإسهاب +الإسهال +الإسهالات +الإسهام +الإسهامات +الإشادة +الإشارات +الإشاراتلكن +الإشارة +الإشاعات +الإشباع +الإشتراك +الإشراف +الإشراقات +الإشعاع +الإشعاعات +الإشعاعي +الإشعاعية +الإشكال +الإشكالات +الإشكاليات +الإشكالية +الإشهار +الإصابات +الإصابة +الإصبع +الإصدار +الإصدارات +الإصرار +الإصطناعي +الإصلاح +الإصلاحات +الإصلاحي +الإصلاحية +الإصلاحيون +الإصلاحيين +الإضاء +الإضاءة +الإضافات +الإضافة +الإضافي +الإضافية +الإضحاك +الإضرار +الإضطراب +الإضطرابات +الإطاحة +الإطار +الإطارات +الإطراء +الإطفاء +الإطلاع +الإطلاق +الإطلالة +الإعادة +الإعاقات +الإعاقة +الإعتبار +الإعتقاد +الإعتماد +الإعجاب +الإعجاز +الإعجازي +الإعداد +الإعدادي +الإعدادية +الإعدام +الإعزاز +الإعشاب +الإعصار +الإعلام +الإعلامي +الإعلامية +الإعلاميون +الإعلاميين +الإعلان +الإعلانات +الإعلانية +الإعمار +الإعياء +الإفادة +الإفتاء +الإفتتاح +الإفراج +الإفراز +الإفرازات +الإفراط +الإفرنج +الإفرنجي +الإفريقي +الإفريقيات +الإفريقية +الإفريقيون +الإفريقيين +الإفريي +الإفساد +الإفصاح +الإفطار +الإفلات +الإفلاس +الإقامة +الإقبال +الإقتصادي +الإقتصادية +الإقراء +الإقرار +الإقصاء +الإقصورة +الإقطاع +الإقطاعي +الإقطاعية +الإقطاعيين +الإقفار +الإقفاري +الإقلاع +الإقلال +الإقليدية +الإقليم +الإقليمي +الإقليمية +الإقناع +الإقياء +الإكتأب +الإكتشافات +الإكثار +الإكزيما +الإكليلية +الإكلينيكي +الإكوادور +الإلبية +الإلتزام +الإلتهاب +الإلتهابات +الإلحاح +الإلحاد +الإلحاديين +الإلزام +الإلزامي +الإلزامية +الإلعاب +الإلــتهاب +الإلقاح +الإلكترون +الإلكترونى +الإلكتروني +الإلكترونيات +الإلكترونية +الإلماح +الإلمام +الإله +الإلهام +الإلهة +الإلهي +الإلهية +الإلهيين +الإلياذة +الإلية +الإماء +الإمارات +الإماراتي +الإماراتيون +الإماراتيين +الإمارة +الإمارتين +الإمام +الإمامين +الإمبراطور +الإمبراطورية +الإمبريالي +الإمبريالية +الإمراضية +الإمساك +الإمعان +الإمكان +الإمكانات +الإمكانيات +الإمكانية +الإناء +الإنابة +الإناث +الإنارة +الإنباتية +الإنبوب +الإنتاج +الإنتاجية +الإنتانات +الإنتباه +الإنتربول +الإنتركونتيننتال +الإنترناشونال +الإنترناشيونال +الإنترنت +الإنتشار +الإنتفاخ +الإنتفاضة +الإنتقال +الإنثراكس +الإنثناء +الإنجاب +الإنجابية +الإنجاز +الإنجازات +الإنجليز +الإنجليزي +الإنجليزيات +الإنجليزية +الإنجيل +الإنجيلية +الإنجيليكانية +الإنحشار +الإندبندنت +الإندونيسية +الإنديز +الإنذار +الإنذارات +الإنزيم +الإنزيمات +الإنزيمية +الإنسان +الإنسانة +الإنسانى +الإنساني +الإنسانيات +الإنسانية +الإنسانيين +الإنسانَ +الإنسانِ +الإنسداد +الإنشاء +الإنشاءات +الإنشائية +الإنشاد +الإنصاف +الإنعاش +الإنـسان +الإنفاق +الإنفتاق +الإنفلونزا +الإنقاذ +الإنكار +الإنكشارية +الإنكشاريين +الإنماء +الإنمائية +الإنهاك +الإهانة +الإهتمام +الإهداء +الإهمال +الإوز +الإيابا +الإيبولا +الإيثان +الإيثايل +الإيثر +الإيثيلي +الإيجاب +الإيجابى +الإيجابي +الإيجابيات +الإيجابية +الإيحاء +الإيحائية +الإيداع +الإيدز +الإيديولوجيا +الإيذاء +الإيرادات +الإيرادي +الإيراني +الإيرانية +الإيرباص +الإيرلندي +الإيض +الإيطالى +الإيطالي +الإيطالية +الإيطاليون +الإيطاليين +الإيــدز +الإيقاع +الإيقاعات +الإيقاعي +الإيكولوجية +الإيماء +الإيمان +الإيماني +الإيمانية +الا +الائتلافية +الائتمان +الائتماني +الائتمانية +الابتدائي +الابتدائية +الابتداع +الابتذال +الابتسام +الابتسامة +الابتعاث +الابتعاد +الابتكار +الابتكارات +الابتكارية +الابتلاء +الابتهال +الابتهالات +الابداعية +الابن +الات +الاتباع +الاتجار +الاتجاه +الاتجاهات +الاتجاهين +الاتحاد +الاتحادات +الاتحادية +الاتروبين +الاتزان +الاتساع +الاتساق +الاتصال +الاتصالات +الاتصالية +الاتفاق +الاتفاقية +الاتكاء +الاتهام +الاتهامات +الاتهاماتِ +الاتيل +الاتّحاد +الاتّزان +الاتّصال +الاثنا +الاثنان +الاثنتان +الاثنتين +الاثنى +الاثنين +الاثنينية +الاجتماع +الاجتماعات +الاجتماعى +الاجتماعي +الاجتماعيات +الاجتماعية +الاجتهاد +الاجتهادات +الاجتهادين +الاجتياح +الاجراءات +الاجرة +الاجزاء +الاجهزة +الاحتباس +الاحتجاب +الاحتجاج +الاحتراف +الاحترافى +الاحترام +الاحتشاء +الاحتشائية +الاحتضار +الاحتفاء +الاحتفاظ +الاحتفال +الاحتفالات +الاحتفالي +الاحتفالية +الاحتقار +الاحتكاك +الاحتكاكات +الاحتكام +الاحتلال +الاحتلالي +الاحتلاليّ +الاحتمال +الاحتمالات +الاحتواء +الاحتياج +الاحتياجات +الاحتياط +الاحتياطات +الاحتياطي +الاحتياطيات +الاحتياطية +الاحداث +الاحزاب +الاحساء +الاحصائيات +الاحمرار +الاحوال +الاحياء +الاختبار +الاختبارات +الاختراع +الاختراق +الاختراقات +الاختزالية +الاختصاص +الاختصاصات +الاختصاصي +الاختفاء +الاختلاء +الاختلاج +الاختلاجات +الاختلاجية +الاختلاط +الاختلاف +الاختلافات +الاختلالات +الاختناق +الاختيار +الاختيارات +الاختيارية +الاخر +الاخرى +الاخرين +الاخضرار +الاخيرة +الادعاء +الادعاءات +الادوية +الاذاعي +الاراده +الاراضي +الاربع +الاربعاء +الاربعة +الارتباط +الارتباك +الارتجاجات +الارتجال +الارتجالي +الارتداد +الارتطام +الارتفاع +الارتقاء +الارتكاز +الارتواء +الارتوازية +الارتياح +الارتياد +الارض +الازدحام +الازدراء +الازدهار +الازدواج +الازدواجية +الازدياد +الازرق +الازعاج +الازهار +الاسئلة +الاساسية +الاسباب +الاسبوع +الاستئثنار +الاستئجار +الاستئصال +الاستاذ +الاستبانة +الاستبداد +الاستبيان +الاستبيانات +الاستثارة +الاستثمار +الاستثمارات +الاستثماري +الاستثمارية +الاستثناء +الاستثناءات +الاستثنائي +الاستثنائية +الاستجابات +الاستجابة +الاستجمام +الاستجمامية +الاستجواب +الاستحضار +الاستحقاق +الاستحقاقات +الاستحقاقين +الاستحكامات +الاستحمام +الاستخبارات +الاستخدام +الاستخدامات +الاستخلاف +الاستدارة +الاستدامة +الاستدراك +الاستدعاء +الاستراتيجي +الاستراتيجيات +الاستراتيجية +الاستراحة +الاسترالي +الاسترالية +الاستراليون +الاسترايجيات +الاسترخاء +الاسترليني +الاستروجين +الاستروجينات +الاستزادة +الاستزراع +الاستسلام +الاستسهال +الاستشارات +الاستشارة +الاستشاري +الاستشارية +الاستشراف +الاستشراق +الاستشراقي +الاستشراقية +الاستشعار +الاستشفاء +الاستشهاد +الاستشهادية +الاستصباح +الاستضافة +الاستطالات +الاستطباب +الاستطلاع +الاستطلاعية +الاستظهار +الاستعارات +الاستعاضة +الاستعانة +الاستعجال +الاستعداد +الاستعدادات +الاستعراب +الاستعراض +الاستعراضات +الاستعلاء +الاستعلائية +الاستعلامات +الاستعمار +الاستعماري +الاستعمارية +الاستعمال +الاستفادة +الاستفتاء +الاستفتاءات +الاستفزاز +الاستفسار +الاستفهام +الاستقالة +الاستقامة +الاستقبال +الاستقرار +الاستقصائية +الاستقطاب +الاستقلاب +الاستقلابية +الاستقلال +الاستقلالية +الاستكشاف +الاستكشافي +الاستكشافية +الاستلاب +الاستلام +الاستلقاء +الاستمارات +الاستماع +الاستمتاع +الاستمرار +الاستمرارية +الاستنباطية +الاستنتاج +الاستنتاجات +الاستنساخ +الاستنفار +الاستهداف +الاستهزاء +الاستهلاك +الاستهلاكي +الاستهلاكية +الاستواء +الاستوائي +الاستوائية +الاستيراد +الاستيطان +الاستيطاني +الاستيطانية +الاستيعاب +الاستيعابية +الاستيقاظ +الاستيلاء +الاسراع +الاسشتراقية +الاسطبل +الاسطر +الاسكندرونة +الاسكندرية +الاسكندنافيين +الاسلامية +الاسلمة +الاسم +الاسماعيلية +الاسمنت +الاسمية +الاسمين +الاسود +الاش +الاشارة +الاشتباك +الاشتباه +الاشتراط +الاشتراك +الاشتراكي +الاشتراكية +الاشتراكيين +الاشتعال +الاشتياق +الاشخاص +الاشراف +الاشياء +الاصابة +الاصدقاء +الاصرار +الاصطدام +الاصطفاف +الاصطلاح +الاصطلاحية +الاصطناعي +الاصطناعية +الاصطياف +الاصلية +الاضاءة +الاضحاك +الاضحكاك +الاضرابات +الاضطراب +الاضطرابات +الاضطراري +الاضطلاع +الاضطهاد +الاضمحلال +الاطاحة +الاطار +الاطراء +الاطفال +الاطلاع +الاطلنطي +الاطمئنان +الاطماع +الاعادة +الاعتبار +الاعتبارات +الاعتباري +الاعتداء +الاعتداءات +الاعتداد +الاعتدال +الاعتذار +الاعتراض +الاعتراضات +الاعتراف +الاعترافات +الاعتزاز +الاعتزال +الاعتصام +الاعتقاد +الاعتقال +الاعتكاف +الاعتلال +الاعتماد +الاعتمادات +الاعتناء +الاعتياد +الاعتيادي +الاعتيادية +الاعلام +الاعلانات +الاعوجاج +الاف +الافتاحية +الافتتاح +الافتتاحي +الافتتاحيات +الافتراءات +الافتراس +الافتراض +الافتراضات +الافتراضي +الافتراضية +الافتقار +الافتنان +الافراز +الافرازات +الافرنجي +الافكار +الاقتباس +الاقتباسات +الاقتتال +الاقتحام +الاقتحامي +الاقتداء +الاقتراب +الاقتراح +الاقتراحات +الاقتراض +الاقتصاد +الاقتصادات +الاقتصادى +الاقتصادي +الاقتصادية +الاقتصاديون +الاقتصاديين +الاقتصاية +الاقتفائيين +الاقتلاعين +الاقتناء +الاقتناع +الاقسام +الاقصورة +الاقصى +الاقطاعية +الاقل +الاقلية +الاقياء +الاكبر +الاكتئاب +الاكتتاب +الاكتشاف +الاكتشافات +الاكتفاء +الاكتمال +الاكزيمات +الاكزيمرليزر +الالاف +الالتباسات +الالتجاء +الالتحاق +الالتحام +الالتزام +الالتزامات +الالتصاق +الالتفات +الالتقاء +الالتهاب +الالتهابات +الالتهابي +الالف +الالكترونى +الالكتروني +الالم +الالوف +الالي +الامام +الامامي +الامان +الامبراطور +الامتحان +الامتحانات +الامتداد +الامتصاص +الامتعاض +الامتلاء +الامتياز +الامتيازات +الامر +الامريكية +الامكانات +الامم +الامنى +الامنية +الاميال +الان +الانبتات +الانبساط +الانبساطي +الانبعاث +الانبعاثات +الانبهار +الانتاج +الانتان +الانتانات +الانتاني +الانتباه +الانتحار +الانتخاب +الانتخابات +الانتخابي +الانتخابية +الانتداب +الانتدابية +الانترنت +الانتساب +الانتشار +الانتصار +الانتصارات +الانتظار +الانتظام +الانتعاش +الانتفاضات +الانتفاضة +الانتفاع +الانتقاء +الانتقائي +الانتقائية +الانتقادي +الانتقاص +الانتقال +الانتقالات +الانتقالة +الانتقالية +الانتماء +الانتماءات +الانتهاء +الانتهائية +الانثناء +الانجراف +الانجليز +الانجليزى +الانجليزي +الانجليزية +الانحباس +الانحدار +الانحراف +الانحرافات +الانحطاط +الانحلال +الانحناء +الانحياز +الانحيازات +الانخراط +الانخفاض +الاندفاع +الاندهاش +الانزعاج +الانسان +الانسانية +الانسحاب +الانسحاق +الانسيابي +الانشطار +الانشقاقات +الانصراف +الانصهار +الانصياع +الانضباط +الانضباطية +الانضمام +الانضواء +الانطباع +الانطباعات +الانطباعيين +الانطلاق +الانطلاقة +الانطواء +الانطوائي +الانعزال +الانعقال +الانعكاس +الانفتاح +الانفجار +الانفجارية +الانفراد +الانفرادي +الانفصال +الانفصاليين +الانفصام +الانفعال +الانفعالات +الانفعالي +الانفعالية +الانفلات +الانقباضي +الانقراض +الانقسام +الانقسامات +الانقضاض +الانقطاع +الانقلاب +الانقلابات +الانكسار +الانكساري +الانكسارية +الانكشارية +الانكشاف +الانكفاء +الانهيار +الانيلين +الاهانة +الاهتداء +الاهتزاز +الاهتزازات +الاهتزازية +الاهتمام +الاهتمامات +الاهم +الاهمامات +الاوركسترا +الاوقاف +الاولى +الاياتا +الايام +الايتافليين +الايجابي +الايرانية +الايزوينازيد +الايسلندية +الايصال +الايفننج +الايقاع +الايقاعات +الايمن +الاّ +البؤجة +البؤر +البؤرة +البؤرية +البؤس +البؤساء +البئر +البا +البائدة +البائس +البائسة +البائسين +البائع +الباب +البابا +البابايا +البابطين +البابلي +البابليون +البابليين +البابوات +البابونج +البابوي +البابوية +البابويين +البابي +البابين +البابَ +الباتر +الباحة +الباحث +الباحثات +الباحثان +الباحثة +الباحثون +الباحثين +الباحـة +الباخرة +البادئة +البادرات +البادية +الباذخة +البار +البارات +الباربكيو +البارحة +البارد +الباردة +الباردتين +البارز +البارزة +البارزين +البارع +البارعون +البارود +البارودي +البارون +الباري +الباريسي +الباريسية +الباز +البازار +البازلت +البازيليك +البازين +الباستيل +الباسق +الباسقة +الباسلة +الباسمة +الباشا +الباشة +الباشتو +الباص +الباصات +الباطشة +الباطل +الباطلة +الباطن +الباطنة +الباطنية +الباطونية +الباع +الباعة +الباعث +البافلو +الباقلاني +الباقوري +الباقى +الباقي +الباقية +الباقين +الباكر +الباكرة +الباكستان +الباكستانى +الباكستاني +الباكستانية +الباكستانيون +الباكستانيين +الباكية +البال +البالون +البالية +الباليستية +الباليه +البامبو +البان +الباندا +الباهت +الباهتة +الباهر +الباهرة +الباهظة +الباهلي +البايا +البايلو +البايلوسيد +الباين +الببليوثيرابيا +البتانوني +البتة +البتراء +البتروكيماويات +البتروكيماوية +البترول +البترولية +البترون +البتّة +البث +البثور +البجلي +البحار +البحارة +البحت +البحتة +البحتية +البحث +البحثي +البحثية +البحر +البحرة +البحرى +البحري +البحرية +البحرين +البحريني +البحرِ +البحـث +البحـر +البحلقة +البحوث +البحوه +البحيرات +البحيرة +البحّار +البخار +البخاري +البخارية +البخر +البخل +البخور +البخيل +البدء +البدئي +البدئية +البدائل +البدائي +البدائية +البدائيين +البدانة +البداوة +البدايات +البداية +البدايــة +البدر +البدع +البدلات +البدلة +البدن +البدني +البدنية +البدهي +البدهية +البدو +البدوي +البدوية +البديع +البديعة +البديل +البديلة +البدين +البدينة +البدينين +البديهية +البذار +البذل +البذلة +البذور +البر +البراءة +البرابرة +البراثن +البرادو +البراري +البراز +البرازيل +البرازيلي +البرازيلية +البرازيليين +البرازين +البراعم +البراق +البرامج +البرامجي +البراهيم +البراهين +البربر +البربري +البربرية +البرتا +البرتقال +البرج +البرجواتة +البرجوازيون +البرجين +البرد +البردنلس +البردي +البرديات +البرز +البرزخ +البرسيم +البرص +البرفسور +البرق +البرقعاوي +البرك +البركان +البركانية +البركة +البرلما +البرلمان +البرلمانية +البرمجة +البرمجيات +البرميل +البرناسي +البرناسية +البرنامج +البرنامجين +البرهان +البرهنة +البرواقية +البروبلس +البروبليس +البروة +البروتستانت +البروتونات +البروتيز +البروتين +البروتينات +البروتيني +البرودة +البروز +البروستاتة +البروفات +البروفة +البروفسور +البروفيسر +البروفيسور +البروفيسورة +البروفيه +البرونزي +البرونزية +البرى +البري +البريء +البريئة +البرية +البريد +البريدي +البريدية +البريشي +البريطانى +البريطاني +البريطانية +البريطانيون +البريطانيين +البريك +البريلوي +البريلوية +البرين +البريّة +البرّ +البزار +البزر +البزورية +البساتين +البساط +البساطة +البساطي +البسام +البستان +البستاني +البستنة +البسط +البسطا +البسطاء +البسطات +البسمة +البسيط +البسيطة +البشارة +البشاشة +البشتون +البشتونى +البشر +البشرة +البشرى +البشري +البشرية +البشريون +البشريين +البشريّة +البشع +البشعة +البشير +البصارة +البصر +البصرة +البصري +البصرية +البصل +البصلة +البصمات +البصيرة +البصيرية +البضائع +البضاعة +البط +البطء +البطئ +البطاريات +البطاطا +البطاطس +البطاقات +البطاقة +البطالة +البطالمة +البطانة +البطريرك +البطريق +البطش +البطل +البطلة +البطلمي +البطن +البطنية +البطنيتين +البطولات +البطولة +البطيء +البطيئة +البطيخ +البطين +البعث +البعثات +البعثة +البعثية +البعد +البعض +البعل +البعوث +البعوض +البعوضة +البعيد +البعيدة +البعيدتين +البعير +البـريئة +البقاء +البقايا +البقدونس +البقر +البقرة +البقطرياني +البقع +البقعة +البقعتين +البقعي +البقعية +البقية +البكاء +البكار +البكارة +البكالوريا +البكالوريوس +البكباشي +البكتري +البكتريا +البكترية +البكتيري +البكتيريا +البكتيرية +البكر +البكرية +البل +البلا +البلاء +البلابلْ +البلاد +البلادة +البلاذري +البلازا +البلازما +البلازموديوم +البلازمي +البلاستيك +البلاستيكى +البلاستيكي +البلاستيكية +البلاط +البلاطات +البلاعة +البلايا +البلايين +البلبل +البلجيكية +البلح +البلد +البلدالذى +البلدان +البلدة +البلدي +البلديات +البلدية +البلدين +البلطيق +البلع +البلعوم +البلعومي +البلقاء +البلقان +البلل +البلهارسيا +البلوز +البلياتشو +البلياردو +البلية +البليدة +البليون +البنا +البناء +البناءون +البنائين +البنات +البنادق +البناني +البنايات +البنت +البنتوكسيفيللين +البنجاب +البنجر +البنجلاديش +البنجلاديشية +البند +البندازول +البندر +البندق +البندقية +البندى +البندير +البنزايل +البنزين +البنسلين +البنسيون +البنطال +البنفسجية +البنك +البنكرياس +البنكي +البنكية +البنود +البنوك +البنوّة +البنى +البني +البنيات +البنيان +البنية +البنين +البنيوي +البنيوية +البنّاءة +البهائم +البهار +البهارات +البهجة +البهلوان +البهي +البهية +البهيم +البواب +البوابات +البوابة +البوادر +البوارُ +البواكي +البوالب +البوالص +البوبلين +البوتاسيوم +البوتوكس +البوح +البوحسن +البوذية +البور +البورجوازية +البورصات +البورنو +البوزجاني +البوسنة +البوصة +البوفيرا +البوفيه +البوق +البوقلمون +البوكر +البوكيرك +البول +البولب +البولشوي +البولندي +البولنديون +البولى +البولي +البولية +البوليتكنيك +البوليس +البوليستر +البوليسي +البوليسية +البوليسيةِ +البوليوليتي +البومة +البون +البوهيميون +البويضات +البوينج +البويهي +البيئات +البيئة +البيئي +البيئية +البيئيون +البيئيين +البيات +البيارق +البياض +البياضات +البيان +البيانات +البيانو +البياني +البيانية +البيبرازين +البيت +البيتا +البيتز +البيتزا +البيتية +البيتين +البيج +البير +البيرانتيل +البيرة +البيرتا +البيرفينيوم +البيروتية +البيروقراطية +البيروم +البيريت +البيزنطي +البيزنطية +البيزنطيون +البيزنطيين +البيزو +البيسبول +البيسين +البيض +البيضاء +البيضات +البيضة +البيطرة +البيطري +البيطرية +البيطريين +البيع +البيعة +البيـئة +البيك +البيكو +البيلساني +البين +البينات +البينية +البيه +البيوت +البيوتايل +البيوتين +البيورك +البيوض +البيولوجي +البيولوجيا +البيولوجية +البيولوجيّ +البيّنات +البيّنة +البَضّ +البَلَه +البَلُّوطة +الت +التآكل +التآكلي +التآلف +التآليف +التأتي +التأثر +التأثيث +التأثير +التأثيرات +التأخر +التأخير +التأديبية +التأرجح +التأريخ +التأسيس +التأسيسي +التأسيسية +التأشيرات +التأصيل +التأقلم +التأكد +التأكيد +التأليف +التأليفي +التأمت +التأمل +التأملات +التأمين +التأنق +التأني +التأنيب +التأهب +التأهل +التأهيل +التأهيلية +التأوه +التأويل +التأويلات +التأويلي +التئام +التا +التائب +التائبات +التائبون +التائهة +التائهون +التابع +التابعة +التابعون +التابعي +التابلوهات +التابوت +التاج +التاجر +التاريخ +التاريخي +التاريخية +التاريخين +التاريخيين +التاسع +التاسعة +التاطت +التافهة +التاكسي +التالفة +التالى +التالي +التالية +التاليتين +التام +التامات +التامة +التامي +التاني +التايلاندية +التايمز +التايواني +التايوانية +التبادل +التبادلات +التبادلية +التباس +التباعد +التباين +التباينات +التبت +التبجيل +التبدل +التبدلات +التبذير +التبرج +التبرع +التبرعات +التبريد +التبرير +التبست +التبسيط +التبشير +التبشيرية +التبعة +التبلدي +التبني +التبول +التبيين +التتابع +التتابعي +التتار +التتالي +التتر +التتراسكلين +التترية +التتويج +التثاقف +التثاقلي +التثاقلية +التثبيت +التثفل +التثقالية +التثقيفي +التثقيفية +التجادل +التجاذبات +التجار +التجارب +التجارة +التجارى +التجاري +التجارية +التجاريين +التجاعيد +التجانس +التجاوب +التجاوز +التجدد +التجديد +التجديدية +التجديديين +التجذر +التجربة +التجريب +التجريبي +التجريبية +التجريد +التجريدية +التجزئة +التجسس +التجسسيين +التجسيد +التجفيف +التجلي +التجمع +التجمعات +التجميع +التجميعية +التجميل +التجميلي +التجميلية +التجني +التجهيز +التجهيزات +التجهيل +التجوال +التجويد +التجويف +التحاشي +التحاق +التحاقه +التحاقهم +التحالف +التحالفات +التحاليل +التحام +التحامهما +التحاور +التحايل +التحبب +التحتى +التحتية +التحجب +التحجر +التحدث +التحدى +التحدي +التحديات +التحديث +التحديثات +التحديثي +التحديثية +التحديد +التحديدات +التحديق +التحذيرية +التحرر +التحرري +التحررية +التحرش +التحرك +التحرير +التحريري +التحريرية +التحريض +التحريضية +التحريفات +التحريم +التحرّر +التحرّري +التحسس +التحسسي +التحسسية +التحسن +التحسين +التحسينات +التحصيل +التحضير +التحضيرية +التحضيريتين +التحضُّر +التحطيب +التحـويلية +التحف +التحفة +التحفظات +التحفيظ +التحفّظات +التحق +التحقت +التحقق +التحقوا +التحقيق +التحقيقات +التحكم +التحكيم +التحلل +التحليق +التحليل +التحليلات +التحليلي +التحليلية +التحمل +التحميل +التحنيط +التحورات +التحول +التحولات +التحويرات +التحويل +التحويلية +التحوّل +التحوّلات +التحيات +التحية +التحيز +التحيّز +التخاذل +التخالف +التخت +التخثر +التخثرات +التخدير +التخرج +التخريب +التخريبي +التخريبية +التخريج +التخريشية +التخزين +التخزينية +التخصص +التخصصات +التخصصي +التخصصية +التخصيب +التخصيص +التخصّص +التخضب +التخطي +التخطيط +التخطيطية +التخفي +التخفيض +التخفيف +التخلخل +التخلص +التخلف +التخلي +التخليقية +التخلّي +التخلُّص +التخمة +التخمين +التخوف +التخوم +التخيل +التخيّل +التخيُّل +التدابير +التداخل +التداعي +التدافع +التداول +التداوي +التدبير +التدخل +التدخين +التدرج +التدرجات +التدرن +التدريب +التدريبات +التدريبي +التدريبية +التدريجي +التدريس +التدريسية +التدفئة +التدفق +التدفقات +التدقيق +التدقيقات +التدليل +التدمير +التدميرية +التدهور +التدوير +التدوين +التدين +التذاكر +التذبذب +التذكارات +التذكاري +التذكارية +التذكرة +التذكير +التذكّر +التذوق +التراب +الترابط +الترابية +التراتبية +التراتيل +التراث +التراثي +التراثية +التراثين +التراجع +التراجم +التراجيدية +التراحم +التراخيص +الترادف +التراكب +التراكم +التراكمات +التراكيب +الترامواي +الترانزستورات +الترانزيت +التراويح +التربانتين +التربة +التربتوفان +التربنة +التربوي +التربوية +التربويون +التربويين +التربية +التربيعي +الترتيب +الترتيبات +الترجمات +الترجمان +الترجمة +الترجي +الترحال +الترحيب +الترخيص +التردد +الترددات +الترددية +الترديد +التردّي +الترسانة +الترسيبي +الترشيح +الترصد +الترع +الترعة +الترف +الترفتاليك +الترفع +الترفيه +الترفيهى +الترفيهي +الترفيهية +الترقق +الترقي +الترقية +الترقيع +الترقّي +الترك +التركماني +التركى +التركي +التركيب +التركيبات +التركيبة +التركيبي +التركيبية +التركية +التركيز +الترمذي +الترميز +الترميم +الترميمية +الترهات +الترهل +الترهلات +التروك +التروي +التروية +الترويج +الترويجي +الترويجية +الترويس +التزام +التزاما +التزامات +التزامنا +التزامه +التزامها +التزامهم +التزاوج +التزايد +التزجيج +التزحزح +التزلج +التزم +التزمت +التزمّت +التزواج +التزود +التزويج +التزوير +التزوّد +التزين +التزينية +التزييف +التساؤل +التساؤلات +التسارة +التسارع +التسامح +التسامي +التساهل +التسبب +التستر +التسجيل +التسجيلات +التسجيلي +التسجيلية +التسخير +التسخيري +التسخين +التسرب +التسربات +التسريب +التسرية +التسرّبات +التسرُّب +التسع +التسعة +التسعون +التسعين +التسعينات +التسعينيات +التسكع +التسلح +التسلسل +التسلط +التسلل +التسلية +التسليح +التسليحية +التسليخ +التسليم +التسليمي +التسلّط +التسلُّق +التسمم +التسميات +التسمية +التسمّم +التسمُّم +التسنيد +التسهيلات +التسوق +التسول +التسونامي +التسوىقي +التسوية +التسويق +التسويقية +التسييس +التشاؤم +التشاؤمية +التشابك +التشابه +التشابهات +التشبث +التشبع +التشبيهية +التشبُّه +التشجير +التشجيع +التشجيعية +التشخيص +التشخيصية +التشدد +التشديد +التشرد +التشريح +التشريحية +التشريع +التشريعات +التشريعي +التشريعية +التشريفة +التشرّدية +التشفي +التشكك +التشكيك +التشكيل +التشكيلي +التشكيليات +التشكيلية +التشكيليين +التشكّل +التشنجات +التشنُّج +التشوه +التشوهات +التشويش +التشويه +التشويهات +التشوّش +التشيع +التشيكي +التصادم +التصاق +التصاقا +التصاقاً +التصاميم +التصانيف +التصحر +التصحيح +التصحيحية +التصحيف +التصحُّر +التصدعات +التصدي +التصدير +التصديق +التصدّي +التصدِّي +التصرف +التصرفات +التصريح +التصريحات +التصريف +التصرُّف +التصفية +التصفيق +التصق +التصقت +التصلب +التصميم +التصميمات +التصنيع +التصنيعية +التصنيف +التصور +التصورات +التصوف +التصويت +التصوير +التصوّر +التصوّرات +التضاد +التضاريس +التضامن +التضحية +التضخم +التضرعات +التطابق +التطاول +التطبيب +التطبيع +التطبيق +التطبيقات +التطبيقي +التطبيقية +التطرف +التطريز +التطريش +التطعيم +التطعيمات +التطلع +التطلعات +التطهريين +التطهير +التطور +التطورات +التطوع +التطوعي +التطوعية +التطوير +التطوّر +التطوُّح +التطيب +التطير +التظاهر +التظاهرة +التظرف +التظهرن +التعابير +التعارض +التعارف +التعاسة +التعاضد +التعاطف +التعاطي +التعاقدي +التعالي +التعاليم +التعامل +التعاون +التعاونى +التعاوني +التعاونية +التعاويذ +التعايش +التعب +التعبئة +التعبير +التعبيرات +التعبيرية +التعبّدي +التعتعة +التعتيم +التعجب +التعجرف +التعجيز +التعجيل +التعجُّب +التعداد +التعددية +التعدي +التعديلات +التعديلاتِ +التعدين +التعدينية +التعدّدي +التعدّدية +التعذيب +التعرض +التعرف +التعريب +التعرية +التعريف +التعريفات +التعرّض +التعرّف +التعرّي +التعرُّض +التعس +التعسة +التعسّف +التعصب +التعصّب +التعطّر +التعظيم +التعفن +التعقد +التعقيد +التعقيدات +التعقيم +التعلق +التعلم +التعليب +التعليقات +التعليم +التعليمات +التعليمي +التعليمية +التعمير +التعميم +التعميمية +التعنت +التعهدات +التعويض +التعيسة +التعيين +التـــي +التفاؤل +التفاتة +التفاح +التفاحة +التفاصيل +التفاعل +التفاعلات +التفاني +التفاهم +التفاوت +التفاوتِ +التفاوض +التفت +التفتا +التفتت +التفتح +التفتنا +التفتيش +التفتَ +التفتُ +التفتُّ +التفجير +التفرد +التفردية +التفرس +التفرعات +التفرقة +التفريط +التفريعات +التفريق +التفرّس +التفسير +التفسيرات +التفصيل +التفصيلات +التفصيلية +التفعيلة +التفكجي +التفكي +التفكير +التفكيك +التفكيكية +التفكّر +التفلسف +التفوق +التفوه +التفوّق +التفّاح +التقاء +التقاءه +التقائه +التقائهم +التقارب +التقارير +التقاسيم +التقاصر +التقاط +التقاطع +التقاطعات +التقاطه +التقاطها +التقاعد +التقاليد +التقانات +التقانة +التقانيات +التقاوي +التقبل +التقت +التقدم +التقدمية +التقدميين +التقدير +التقديرات +التقديرية +التقديس +التقديم +التقدّم +التقرب +التقريب +التقريبيون +التقرير +التقرّب +التقسيم +التقشف +التقشير +التقصير +التقصّي +التقصِّي +التقط +التقطت +التقطته +التقطتها +التقطتهما +التقطناه +التقطها +التقعر +التقـانة +التقلبات +التقلدية +التقلص +التقليد +التقليدي +التقليديان +التقليدية +التقليدين +التقليديون +التقليديين +التقليل +التقني +التقنيات +التقنية +التقنين +التقهقر +التقوا +التقوقع +التقوى +التقوي +التقويم +التقى +التقىيم +التقية +التقيت +التقيتها +التقيتُ +التقيحات +التقيد +التقينا +التقيناه +التقييم +التكاثر +التكاسل +التكافؤ +التكافل +التكافلية +التكاليف +التكامل +التكبير +التكتل +التكتلات +التكتيكية +التكرار +التكرير +التكريم +التكلس +التكلفة +التكلم +التكلور +التكليف +التكنولوجي +التكنولوجيا +التكنولوجية +التكون +التكوين +التكوينات +التكىيف +التكية +التكيف +التل +التلاؤم +التلاحم +التلازم +التلاعب +التلاقي +التلال +التلاميذ +التلبية +التلحين +التلفاز +التلفازي +التلفت +التلفريك +التلفريون +التلفزة +التلفزيون +التلفزيونات +التلفزيوني +التلفزيونية +التلفون +التلفّت +التلقائي +التلقائية +التلقيح +التلقين +التلقّي +التلمساني +التلموذات +التلميح +التلميذ +التلوث +التلوّث +التلوُّث +التليد +التليفزيون +التليفزيوني +التليفزيونية +التليفون +التليفونية +التليمير +التليميرات +التليميريز +التماثل +التماثيل +التمارين +التماس +التماسك +التماعات +التماعاته +التمام +التمامية +التماهي +التمايز +التمايزات +التمتع +التمتمة +التمثال +التمثيل +التمثيلي +التمثيلية +التمحيص +التمدد +التمديدات +التمدّن +التمذهب +التمر +التمرد +التمركز +التمريضية +التمرين +التمرّد +التمزقات +التمزيق +التمس +التمساح +التمسك +التمعدن +التمعن +التمكن +التمكين +التمكينية +التملك +التمني +التموجية +التمور +التمويل +التمويلي +التمويلية +التموين +التموينية +التمويه +التميز +التمييز +التمييزي +التميّز +التنازل +التنازلات +التناسق +التناسلي +التناسلية +التناص +التناضح +التناظر +التنافس +التنافسية +التناقص +التناقض +التناقضات +التناول +التنبؤ +التنبؤية +التنبيه +التنجيم +التندب +التنزيلات +التنس +التنسيب +التنسيق +التنشيط +التنشيف +التنصل +التنصي +التنصير +التنصيري +التنصيرية +التنضير +التنظــيف +التنظير +التنظيري +التنظيف +التنظيم +التنظيمات +التنفس +التنفسي +التنفسية +التنفيذ +التنفيذى +التنفيذي +التنفيذية +التنفيذيين +التنقل +التنقلات +التنقيب +التنقيبات +التنقيبية +التنكر +التنكس +التنكيزية +التنموي +التنموية +التنمية +التنهد +التنوخي +التنور +التنورة +التنوع +التنوير +التنويعات +التنويه +التنوّع +التنوُّع +التنين +التهاب +التهابات +التهابية +التهام +التهامها +التهامي +التهاني +التهاون +التهاوي +التهب +التهبت +التهجد +التهجير +التهجين +التهديد +التهديدات +التهذيب +التهرؤ +التهريب +التهشم +التهكم +التهم +التهمة +التهمت +التهنئة +التهور +التهوية +التهويم +التهوين +التوأم +التواء +التواؤم +التواب +التوابل +التواجد +التواريخ +التوازن +التوازنات +التوازني +التوازي +التواشيح +التواصل +التواضع +التواطؤ +التوافد +التوافق +التوالد +التوالدية +التوالي +التواليت +التوبة +التوبيخ +التوت +التوتاليتاري +التوتاليتارية +التوتر +التوترات +التوترية +التوتنجي +التوتياء +التوثيق +التوثيقي +التوجه +التوجهات +التوجيه +التوجيهات +التوحد +التوحيد +التوحيدي +التوحّش +التوراة +التوراتي +التوراتية +التورط +التورية +التوزيع +التوسع +التوسعة +التوسعي +التوسعية +التوسل +التوسلات +التوصل +التوصيات +التوصية +التوصيف +التوصيل +التوصيلات +التوضع +التوضيب +التوضيح +التوطين +التوظيف +التوظيفي +التوعوي +التوعوية +التوعية +التوفل +التوفير +التوفيق +التوق +التوقع +التوقعات +التوقف +التوقيت +التوقيع +التوكل +التولوين +التوليف +التوليفة +التون +التونة +التونسي +التونسية +التوهج +التويج +التى +التي +التيار +التيارات +التياران +التيارين +التيبر +التيبس +التيتانيك +التيجان +التيسير +التيليفريك +التين +التينة +التيه +التّجمّعات +التّذْويت +التّشارك +التّنظيف +التّنفّس +التّنفّسية +التّهوية +التّواليت +التّوصيات +التَّالية +التَّقْوَى +التَّليد +التِّـبْر +الث +الثائر +الثائرات +الثائرة +الثابت +الثابتة +الثاقبة +الثالث +الثالثة +الثالثةُ +الثالوث +الثامن +الثامنة +الثانوي +الثانوية +الثانى +الثاني +الثانية +الثانيةُ +الثبات +الثبيتي +الثدي +الثدييات +الثديين +الثراء +الثرثرة +الثروة +الثرى +الثري +الثريات +الثرية +الثعابين +الثعالب +الثعبان +الثعلب +الثـالـث +الثقاب +الثقات +الثقافات +الثقافة +الثقافى +الثقافي +الثقافية +الثقب +الثقة +الثقل +الثقلاء +الثقوب +الثقيل +الثقيلة +الثكلى +الثكنات +الثلاث +الثلاثاء +الثلاثة +الثلاثمائة +الثلاثي +الثلاثية +الثلاثين +الثلاثينات +الثلاثيني +الثلاثينيات +الثلاثُ +الثلاثِ +الثلاجة +الثلث +الثلثين +الثلج +الثلجي +الثلجية +الثلم +الثلمة +الثلوج +الثمار +الثمالة +الثمانون +الثماني +الثمانية +الثمانين +الثمانينات +الثمانينيات +الثمر +الثمرات +الثمرة +الثمن +الثمين +الثمينة +الثناء +الثنائى +الثنائي +الثنائية +الثنايا +الثنيات +الثواب +الثوابت +الثوار +الثواني +الثوب +الثور +الثورات +الثورة +الثوري +الثورية +الثوم +الثياب +الثيران +الثَّوَابِ +الجأش +الجائر +الجائرة +الجائز +الجائزة +الجائع +الجائعة +الجائعين +الجائلين +الجابر +الجابري +الجابون +الجابية +الجات +الجاثوم +الجاحظ +الجاحظتين +الجاد +الجادة +الجادر +الجادون +الجادين +الجاذب +الجاذبة +الجاذبية +الجار +الجارات +الجارالله +الجارة +الجارح +الجارحي +الجارديان +الجارف +الجاروف +الجارى +الجاري +الجارية +الجازم +الجاسر +الجاف +الجافة +الجافّ +الجاكارد +الجاكيت +الجالب +الجالس +الجالسين +الجالية +الجاليريهات +الجامح +الجامحة +الجامدة +الجامع +الجامعات +الجامعة +الجامعي +الجامعية +الجامعيين +الجان +الجانب +الجانبي +الجانبية +الجانبين +الجانبَ +الجانتسيان +الجانج +الجانجا +الجاهز +الجاهزة +الجاهلون +الجاهلي +الجاهلية +الجاهليين +الجاوي +الجبار +الجبال +الجبان +الجبر +الجبري +الجبس +الجبل +الجبلي +الجبلية +الجبن +الجبناء +الجبهات +الجبهة +الجبهي +الجبيل +الجبين +الجبّار +الجبّارة +الجثة +الجثث +الجثمانية +الجحر +الجحش +الجحور +الجحيم +الجد +الجدات +الجدار +الجدارة +الجداري +الجدارية +الجدالات +الجدانوفية +الجداول +الجداوي +الجدب +الجدة +الجدد +الجدرات +الجدران +الجدرة +الجدري +الجدل +الجدليات +الجدول +الجدوى +الجدوي +الجديان +الجدية +الجديد +الجديدة +الجدير +الجديرة +الجديـدة +الجدّ +الجدّة +الجدّي +الجذاب +الجذابة +الجذام +الجذب +الجذبوي +الجذبوية +الجذر +الجذري +الجذرية +الجذع +الجذعية +الجذوة +الجذور +الجذوع +الجر +الجرأة +الجرائد +الجرائم +الجراثيم +الجراح +الجراحات +الجراحة +الجراحون +الجراحي +الجراحية +الجراحين +الجراد +الجرار +الجرافات +الجرافة +الجرام +الجراند +الجرانيت +الجرثومية +الجرجاوي +الجرح +الجرحى +الجرد +الجرداء +الجرذان +الجرس +الجرعات +الجرعة +الجرف +الجرمان +الجروح +الجري +الجريء +الجريئة +الجريان +الجريح +الجريحة +الجريد +الجريدة +الجريمة +الجرّتين +الجزء +الجزأين +الجزئي +الجزئيات +الجزئية +الجزائر +الجزائرمحطته +الجزائري +الجزائرية +الجزائريون +الجزائريين +الجزار +الجزايرلي +الجزر +الجزرية +الجزم +الجزيء +الجزيئات +الجزيئية +الجزيرة +الجزيل +الجسد +الجسدي +الجسدية +الجسر +الجسرالضيّق +الجسم +الجسماني +الجسمي +الجسمية +الجسور +الجسورة +الجسيم +الجسيمات +الجسيمة +الجسيمية +الجص +الجعة +الجـوية +الجـينـات +الجفاف +الجفن +الجفوة +الجلاء +الجلابة +الجلابيب +الجلاد +الجلال +الجلالة +الجلالي +الجلالين +الجلاميد +الجلباب +الجلبة +الجلبي +الجلجلة +الجلد +الجلدشوكيات +الجلدي +الجلدية +الجلسات +الجلسة +الجلطات +الجلل +الجلود +الجلوس +الجلوكوز +الجلية +الجليد +الجليدي +الجليدية +الجليل +الجليلة +الجم +الجماجم +الجماح +الجماد +الجمارك +الجماعات +الجماعة +الجماعي +الجماعية +الجمال +الجمالى +الجمالي +الجمالية +الجماهير +الجماهيري +الجماهيرية +الجمبري +الجمجمة +الجمحي +الجمر +الجمرات +الجمرة +الجمركية +الجمع +الجمعة +الجمعي +الجمعيات +الجمعية +الجمل +الجملة +الجمهرة +الجمهور +الجمهوري +الجمهوريات +الجمهورية +الجمود +الجموع +الجميع +الجميل +الجميلات +الجميلة +الجميلتين +الجميّل +الجمّة +الجن +الجنائز +الجنائزي +الجنائزية +الجنائي +الجنائية +الجناة +الجناح +الجناحية +الجنادرية +الجنازات +الجنازة +الجنان +الجنبات +الجنبية +الجنة +الجند +الجندب +الجندر +الجندرة +الجندول +الجندي +الجندية +الجنرال +الجنس +الجنسي +الجنسيات +الجنسية +الجنسين +الجنوب +الجنوبى +الجنوبي +الجنوبية +الجنوبيين +الجنوبيّة +الجنوح +الجنود +الجنون +الجنوني +الجني +الجنية +الجنين +الجنينية +الجنيه +الجنيهات +الجنّ +الجهات +الجهاد +الجهادي +الجهادية +الجهاز +الجهازية +الجهة +الجهتين +الجهد +الجهراء +الجهل +الجهلاء +الجهنمي +الجهني +الجهود +الجهوري +الجهوي +الجهوية +الجو +الجوائز +الجواب +الجوابون +الجوار +الجوارح +الجواري +الجواريش +الجواز +الجوازات +الجوازي +الجواسيس +الجوامع +الجوانب +الجواني +الجواهر +الجود +الجودة +الجور +الجورشي +الجوز +الجوزي +الجوع +الجوعى +الجوفاء +الجوفية +الجوقة +الجول +الجولات +الجولان +الجولة +الجولف +الجونة +الجونكور +الجوهر +الجوهري +الجوهرية +الجوهريين +الجوى +الجوي +الجوية +الجويين +الجوّاني +الجياد +الجيب +الجيتار +الجيتو +الجيد +الجيدة +الجيدين +الجير +الجيران +الجيري +الجيرية +الجيزة +الجيش +الجيـنيون +الجيل +الجيلادا +الجيلاني +الجيم +الجين +الجينات +الجينز +الجينوكولوجي +الجينى +الجيني +الجينية +الجيوب +الجيوسي +الجيوش +الجيوفيزيائي +الجيوكندا +الجيولوجي +الجيولوجيا +الجيولوجية +الجيّد +الجيّدة +الجَدْب +الحائرين +الحائط +الحاج +الحاجات +الحاجبين +الحاجة +الحاجز +الحاحظ +الحاخامية +الحاد +الحادة +الحادث +الحادثة +الحادى +الحادي +الحادية +الحار +الحارة +الحارث +الحارثي +الحارس +الحارق +الحارقة +الحازم +الحازمة +الحاسب +الحاسبات +الحاسة +الحاسرات +الحاسم +الحاسمة +الحاسوب +الحاشد +الحاشية +الحاصل +الحاصلات +الحاصلة +الحاصلين +الحاضر +الحاضرات +الحاضرة +الحاضرون +الحاضرين +الحافة +الحافظ +الحافظة +الحافل +الحافلات +الحافلة +الحافي +الحافية +الحاقد +الحاقدة +الحاقدون +الحاقدين +الحاكم +الحاكمة +الحاكمية +الحاكمين +الحاكي +الحال +الحالات +الحالة +الحالتين +الحالك +الحالم +الحالمة +الحالمُ +الحالى +الحالي +الحالية +الحالين +الحاليين +الحامدي +الحامدية +الحامض +الحامضة +الحاملة +الحاملون +الحاملين +الحامى +الحامي +الحامية +الحانوت +الحانية +الحاوي +الحاوية +الحب +الحبات +الحباك +الحبة +الحبر +الحبس +الحبشة +الحبشي +الحبك +الحبكة +الحبل +الحبلية +الحبوب +الحبيب +الحبيبات +الحبيبة +الحبيبية +الحبيبين +الحتمي +الحتمية +الحثيث +الحثيثة +الحج +الحجاب +الحجاج +الحجارة +الحجاز +الحجازي +الحجازية +الحجازيين +الحجب +الحجة +الحجج +الحجر +الحجرات +الحجرالصحي +الحجرة +الحجري +الحجرية +الحجز +الحجلة +الحجم +الحجمُ +الحجمِ +الحجوزات +الحجي +الحجيج +الحد +الحدائق +الحداثة +الحداثي +الحداثيون +الحداد +الحدادة +الحدادين +الحدباء +الحدبة +الحدة +الحدث +الحدس +الحدقات +الحدقتين +الحدوات +الحدوة +الحدوث +الحدود +الحديث +الحديثة +الحديثين +الحديد +الحديدة +الحديدى +الحديدي +الحديدية +الحديديتين +الحديديين +الحديقة +الحدّ +الحدّية +الحدَّ +الحذاء +الحذاءين +الحذر +الحذف +الحر +الحرائق +الحراب +الحرارة +الحراري +الحرارية +الحراس +الحراسة +الحراسيس +الحراك +الحرام +الحرب +الحرباء +الحرباوات +الحربي +الحربية +الحربين +الحرة +الحرث +الحرج +الحرجة +الحرجلة +الحرجي +الحرس +الحرص +الحرف +الحرفة +الحرفي +الحرفية +الحرفيين +الحرق +الحرقة +الحرقية +الحركات +الحركة +الحركةِ +الحركتين +الحركي +الحركية +الحرم +الحرمات +الحرمان +الحرمون +الحرمين +الحروب +الحروري +الحرورية +الحروف +الحروق +الحريات +الحرية +الحرير +الحريرات +الحريرة +الحريرى +الحريري +الحريص +الحريصة +الحريصون +الحريق +الحريقة +الحرّ +الحرّة +الحزازات +الحزام +الحزب +الحزبان +الحزبي +الحزبية +الحزبين +الحزم +الحزن +الحزين +الحزينة +الحس +الحساب +الحسابات +الحسابية +الحساس +الحساسة +الحساسية +الحساسين +الحسب +الحسبان +الحسد +الحسم +الحسن +الحسنات +الحسنة +الحسنى +الحسنية +الحسي +الحسية +الحسين +الحسيني +الحسينية +الحسينيون +الحسّاسة +الحسّي +الحسّية +الحشائش +الحشاشين +الحشد +الحشرات +الحشرة +الحشرية +الحشف +الحشفي +الحشفية +الحشمة +الحشو +الحصاة +الحصاد +الحصار +الحصارات +الحصان +الحصانة +الحصباء +الحصة +الحصر +الحصص +الحصن +الحصول +الحصولَ +الحصون +الحصى +الحصيات +الحصير +الحصيرة +الحصيفة +الحصيلة +الحصين +الحصينة +الحض +الحضارات +الحضارة +الحضارتين +الحضاري +الحضارية +الحضانة +الحضرات +الحضري +الحضرية +الحضور +الحضيض +الحطاب +الحطام +الحظ +الحظر +الحظوظ +الحـالى +الحـج +الحـجز +الحـد +الحـدود +الحـديث +الحـديثة +الحـديقة +الحـركة +الحـسابية +الحـضارات +الحـــضـــــارة +الحــــالات +الحــية +الحـقيبة +الحـقيقة +الحـكومة +الحـكومية +الحـياة +الحـية +الحف +الحفائر +الحفاظ +الحفافي +الحفاوة +الحفر +الحفرة +الحفريات +الحفرية +الحفظ +الحفظية +الحفل +الحفلات +الحفلة +الحفلى +الحق +الحقائب +الحقائق +الحقانية +الحقب +الحقبة +الحقد +الحقل +الحقن +الحقوق +الحقوقي +الحقوقية +الحقوقيين +الحقول +الحقيبة +الحقير +الحقيرة +الحقيقة +الحقيقي +الحقيقية +الحقيقيين +الحقّ +الحكام +الحكايات +الحكاية +الحكة +الحكم +الحكماء +الحكمة +الحكواتي +الحكومات +الحكومة +الحكومتان +الحكومتين +الحكومى +الحكومي +الحكومية +الحكوميين +الحكي +الحكيم +الحكيمة +الحل +الحلاج +الحلاق +الحلاقة +الحلاقين +الحلال +الحلاوة +الحلاويين +الحلبة +الحلبي +الحلفاء +الحلق +الحلقات +الحلقة +الحلقية +الحلل +الحلم +الحلمية +الحلمُ +الحلو +الحلول +الحلوى +الحلي +الحليب +الحلية +الحليلي +الحليم +الحلّ +الحلّي +الحماد +الحمادي +الحمار +الحماس +الحماسة +الحماسية +الحماقات +الحماقة +الحمالون +الحمام +الحمامات +الحمامة +الحماية +الحمد +الحمداني +الحمدلله +الحمر +الحمراء +الحمص +الحمصي +الحمض +الحمضات +الحمضي +الحمضيات +الحمضية +الحمل +الحملات +الحملة +الحملي +الحموض +الحموضة +الحمولة +الحموي +الحمى +الحميد +الحميدي +الحمير +الحميري +الحميضي +الحميم +الحميمة +الحميمي +الحميمية +الحميمين +الحمّاد +الحمّام +الحمّى +الحمَّام +الحمَّامات +الحناء +الحنان +الحنة +الحنجرة +الحنجرية +الحنطة +الحنطور +الحنظل +الحنفي +الحنفية +الحنق +الحنك +الحنون +الحنية +الحنيف +الحنين +الحوائط +الحواة +الحواجب +الحواجز +الحواجزبين +الحوادث +الحوار +الحوارات +الحواري +الحوارية +الحواس +الحواضر +الحواف +الحوافز +الحوامل +الحوانيت +الحوت +الحور +الحوراني +الحورية +الحوسني +الحوشية +الحوض +الحوضين +الحوطي +الحول +الحوليات +الحىة +الحي +الحياء +الحياة +الحياتي +الحياتية +الحياد +الحيازة +الحياكة +الحية +الحيتان +الحيرة +الحيز +الحيض +الحيف +الحيل +الحيلة +الحين +الحيوات +الحيوان +الحيوانات +الحيواني +الحيوانية +الحيوي +الحيوية +الحيويّة +الحيّ +الحيّة +الحيّز +الحَجب +الحُبُور +الحُرَّة +الحِكَم +الخ +الخا +الخائب +الخائرة +الخائف +الخائفة +الخائن +الخابور +الخاتمة +الخادعة +الخادم +الخادمات +الخادمة +الخارج +الخارجة +الخارجون +الخارجى +الخارجي +الخارجية +الخارجين +الخارجيين +الخارطة +الخارق +الخارقة +الخارقين +الخازن +الخازندار +الخاسر +الخاسرين +الخاشعين +الخاص +الخاصة +الخاصية +الخاصّة +الخاضعة +الخاطئ +الخاطئة +الخاطبين +الخاطر +الخافت +الخافتة +الخافض +الخافضة +الخال +الخالة +الخالد +الخالدة +الخالدون +الخالدي +الخالدية +الخالص +الخالصة +الخالق +الخالقية +الخالى +الخالي +الخالية +الخام +الخامات +الخامد +الخامس +الخامسة +الخامل +الخان +الخانة +الخانقاه +الخانقة +الخبائث +الخبازين +الخبب +الخبر +الخبراء +الخبرات +الخبرة +الخبرية +الخبز +الخبيئة +الخبيث +الخبيثة +الخبير +الخبيرة +الختام +الختامي +الختامية +الختم +الختمة +الختمية +الخجل +الخجول +الخداع +الخدج +الخدر +الخدري +الخدم +الخدمات +الخدمة +الخدمية +الخدود +الخدور +الخدي +الخديعة +الخدين +الخديو +الخديوي +الخذلان +الخرائب +الخرائط +الخراب +الخرابة +الخراجات +الخراساني +الخراط +الخراطيم +الخراف +الخرافات +الخرافة +الخرافية +الخربة +الخرج +الخرجة +الخرجي +الخرسانة +الخرساني +الخرسانية +الخرطوم +الخرف +الخرم +الخرنفش +الخروج +الخروف +الخريجون +الخريجين +الخرير +الخريطة +الخريطتين +الخريف +الخزافين +الخزانات +الخزانة +الخزرج +الخزعة +الخزف +الخزفية +الخزينة +الخزّافين +الخس +الخسائر +الخسارة +الخشابين +الخشب +الخشبي +الخشبية +الخشبيّ +الخشخاش +الخشكريشة +الخشنة +الخشونة +الخشية +الخصائص +الخصال +الخصام +الخصب +الخصبة +الخصر +الخصلات +الخصلة +الخصم +الخصمين +الخصوبة +الخصوص +الخصوصية +الخصومات +الخصومة +الخصوي +الخصيب +الخصية +الخضار +الخضر +الخضراء +الخضراوات +الخضرة +الخضروات +الخضوع +الخط +الخطأ +الخطاب +الخطابات +الخطايا +الخطب +الخطبة +الخطبِ +الخطة +الخطر +الخطرة +الخطط +الخطف +الخطوات +الخطوبة +الخطوة +الخطورة +الخطوط +الخطى +الخطي +الخطيب +الخطيبان +الخطيبين +الخطية +الخطير +الخطيرة +الخطين +الخـدمـة +الخفاء +الخفاش +الخفايا +الخفض +الخفوت +الخفي +الخفية +الخفيض +الخفيضة +الخفيف +الخفيفة +الخفّة +الخل +الخلائق +الخلاب +الخلابة +الخلاص +الخلاصة +الخلاط +الخلاف +الخلافات +الخلافة +الخلافية +الخلاق +الخلايا +الخلاّق +الخلجات +الخلجان +الخلخلة +الخلدوني +الخلص +الخلط +الخلطاء +الخلطة +الخلعيين +الخلف +الخلفاء +الخلفي +الخلفيات +الخلفية +الخلفيتين +الخلفيين +الخلق +الخلقي +الخلقية +الخلل +الخلوات +الخلود +الخلوي +الخلوية +الخلية +الخليتان +الخليج +الخليجى +الخليجي +الخليجيات +الخليجية +الخليجيين +الخليط +الخليفة +الخليقة +الخليل +الخليلي +الخمار +الخمج +الخمر +الخمرة +الخمس +الخمسة +الخمسمائة +الخمسون +الخمسين +الخمسينات +الخمسينيات +الخمور +الخميرة +الخميس +الخميسات +الخميسي +الخميسية +الخميني +الخناجر +الخنادق +الخنافس +الخناق +الخنثى +الخنجر +الخندق +الخنزير +الخنساء +الخنق +الخواء +الخواتم +الخوادم +الخوارزمي +الخوارزمية +الخوارق +الخواص +الخواطر +الخوالي +الخوان +الخوتاني +الخوخ +الخور +الخوري +الخوض +الخوف +الخولي +الخونة +الخيار +الخيارات +الخياشيم +الخياط +الخياطة +الخياطين +الخيال +الخيالات +الخيالة +الخيالي +الخيالية +الخيام +الخيامية +الخياميون +الخيانة +الخيبة +الخير +الخيرات +الخيرة +الخيري +الخيرية +الخيرين +الخيش +الخيشومي +الخيط +الخيل +الخيلُ +الخيمة +الخيمي +الخيوط +الخيول +الخيّام +الخيّرة +الخَطَابة +الخُلْف +الدءوب +الدءوبة +الدأب +الدؤوب +الداء +الدائب +الدائر +الدائرة +الدائرية +الدائم +الدائمة +الدائمين +الدائن +الدائنون +الدابة +الداجنة +الداجنين +الداخل +الداخلة +الداخلون +الداخلى +الداخلي +الداخلية +الداخليين +الداخية +الدار +الدارج +الدارجة +الدارس +الدارسات +الدارسين +الدارية +الداع +الداعم +الداعمة +الداعي +الداعيات +الداعية +الداعين +الدافئ +الدافئة +الدافع +الدافعة +الدافعية +الدافق +الدافقة +الداكن +الداكنة +الداكوتا +الدال +الدالاتي +الدالة +الدامس +الدانتيلا +الدانماركيين +الدانوب +الداهية +الداوردي +الداوودي +الدب +الدبابات +الدبابة +الدبان +الدببة +الدببةِ +الدبق +الدبلجة +الدبلوم +الدبلوماسي +الدبلوماسية +الدبور +الدبوس +الدبين +الدبُّ +الدجاج +الدجاجين +الدجال +الدجالين +الدجاني +الدخان +الدخل +الدخلاء +الدخول +الدخيل +الدخيلة +الدراجات +الدراجة +الدراجي +الدراسات +الدراسة +الدراستين +الدراسي +الدراسية +الدراما +الدرامية +الدراويش +الدراية +الدرب +الدربكة +الدرة +الدرج +الدرجات +الدرجة +الدرحة +الدرداء +الدرر +الدرس +الدرع +الدرعية +الدرق +الدرقة +الدرقية +الدروس +الدرويشية +الدرَّاجات +الدسائس +الدساتير +الدستور +الدستورية +الدستوريين +الدسم +الدسمة +الدشاش +الدشداشة +الدشكة +الدعاء +الدعائم +الدعائية +الدعابة +الدعاة +الدعارة +الدعامات +الدعاوى +الدعاية +الدعة +الدعم +الدعوات +الدعوة +الدعوى +الدعوي +الدعوية +الدفء +الدفاتر +الدفاع +الدفاعات +الدفاعي +الدفاعية +الدفة +الدفتر +الدفع +الدفعات +الدفنات +الدفوف +الدفيئة +الدفين +الدفينة +الدقائق +الدقة +الدقهلية +الدقيق +الدقيقة +الدك +الدكاكين +الدكان +الدكتاتوريات +الدكتاتورية +الدكتور +الدكتوراة +الدكتوراه +الدكتورة +الدكن +الدلائل +الدلافين +الدلال +الدلالات +الدلالة +الدلالي +الدلتا +الدلو +الدليل +الدم +الدماء +الدمار +الدمام +الدمامل +الدمج +الدمشقي +الدمشقية +الدمع +الدمعة +الدمعي +الدمعية +الدموع +الدموي +الدموية +الدمى +الدمية +الدميةُ +الدميري +الدميني +الدنا +الدنانير +الدنايا +الدنسة +الدنمارك +الدنماركي +الدنيئة +الدنيا +الدنيوي +الدنيوية +الدهان +الدهب +الدهر +الدهشة +الدهليز +الدهن +الدهنية +الدهون +الدواء +الدواءين +الدواءُ +الدوائر +الدوائي +الدوائية +الدواب +الدواة +الدواجن +الدوار +الدوافع +الدوام +الدواوين +الدوبلر +الدوحة +الدوخة +الدود +الدودة +الدودي +الدودية +الدور +الدورات +الدوران +الدورة +الدوري +الدوريات +الدورية +الدورين +الدوسري +الدوش +الدوق +الدول +الدولار +الدولارات +الدولة +الدولتين +الدولفين +الدولى +الدولىين +الدولي +الدولية +الدوليين +الدومينة +الدومينو +الدومينيكان +الدونية +الدويس +الدويّ +الدوّارة +الدوّارين +الدي +الديار +الديانات +الديانة +الديانتين +الديحان +الديدان +الدير +الديسك +الديسكو +الديك +الديكة +الديكور +الديكي +الديمقراطي +الديمقراطية +الديموقراطية +الديمومة +الدين +الدينار +الدينامية +الديناميت +الديناميكي +الديناميكية +الدينى +الديني +الدينية +الديوان +الديوبندية +الديوبنديين +الديوك +الديون +الدّك +الدّوليّ +الدَّاكن +الدَّعَة +الدُّخان +الدِّين +الذأبي +الذؤابات +الذئاب +الذئب +الذئبة +الذائب +الذائبة +الذابلات +الذابلة +الذابلتان +الذات +الذاتي +الذاتية +الذاكرة +الذبائح +الذباب +الذبابات +الذبابة +الذبح +الذبول +الذبياني +الذخيرة +الذرات +الذراري +الذراع +الذراعين +الذرة +الذروة +الذري +الذرية +الذعر +الذقن +الذكاء +الذكر +الذكرى +الذكريات +الذكرية +الذكور +الذكورة +الذكوري +الذكورية +الذكوريين +الذكي +الذكية +الذل +الذنوب +الذهاب +الذهب +الذهبي +الذهبية +الذهن +الذهني +الذهنية +الذهول +الذوات +الذوبان +الذود +الذوق +الذوقي +الذى +الذىن +الذي +الذيل +الذين +الذيوع +الذَّارية +الذُّخْر +الر +الرءوس +الرأ +الرأس +الرأسمالي +الرأسمالية +الرأسي +الرأسية +الرأفة +الرأي +الرأيين +الرؤساء +الرؤى +الرؤيا +الرؤية +الرئاسة +الرئاسية +الرئة +الرئتين +الرئوي +الرئوية +الرئيس +الرئيسات +الرئيسة +الرئيسى +الرئيسي +الرئيسيان +الرئيسية +الرئيسين +الرئيسيون +الرئيسيين +الراء +الرائحة +الرائد +الرائدات +الرائدة +الرائع +الرائعة +الرائق +الرائقة +الرائي +الرابض +الرابضة +الرابط +الرابطة +الرابع +الرابعة +الرابية +الراتب +الراثية +الراج +الراجح +الراجف +الراحة +الراحـة +الراحل +الراحلة +الراحلين +الراحي +الراديكالي +الراديكالية +الراديكاليون +الراديكاليين +الراديو +الراديوم +الرازق +الرازي +الراسخ +الراسخة +الراسيات +الراشد +الراشدة +الراشدين +الراصدة +الراضي +الراعي +الرافدين +الرافض +الرافضات +الرافضة +الرافعي +الراقص +الراقصة +الراقى +الراقي +الراقية +الراكب +الرامزين +الرامي +الرامية +الراهب +الراهن +الراهنة +الراوي +الراوية +الراية +الراين +الرب +الربا +الربابة +الرباط +الرباعي +الرباعيات +الربان +الرباني +الربانية +الربح +الربحية +الربط +الربع +الربعي +الربو +الربوات +الربوة +الربوي +الربوية +الربيان +الربيع +الربيعي +الربيعية +الرتابة +الرتاج +الرتب +الرتج +الرتل +الرتم +الرتوش +الرتيبة +الرث +الرثاء +الرثة +الرثواني +الرثوية +الرجاء +الرجات +الرجال +الرجالَ +الرجالُ +الرجل +الرجلان +الرجلين +الرجم +الرجوع +الرجولة +الرجولي +الرجيب +الرجيم +الرحال +الرحالة +الرحالون +الرحب +الرحبانى +الرحبة +الرحـال +الرحـلات +الرحـلة +الرحل +الرحلات +الرحلة +الرحم +الرحمة +الرحمن +الرحى +الرحيب +الرحيبة +الرحيق +الرحيل +الرحيم +الرحيمي +الرحّالة +الرخاء +الرخام +الرخامية +الرخاوي +الرخصة +الرخو +الرخوة +الرخويات +الرخيص +الرخيصة +الرخيم +الرد +الردئ +الرداء +الرداءة +الردة +الردم +الرديء +الرديم +الردّ +الرذاذ +الرذيلة +الرز +الرزاق +الرزق +الرزمة +الرزنامة +الرزيزاء +الرزين +الرسائل +الرسالات +الرسالة +الرسالتين +الرسام +الرسامين +الرسل +الرسم +الرسمة +الرسمى +الرسمي +الرسمية +الرسميين +الرسو +الرسوب +الرسوبي +الرسوبيات +الرسوبية +الرسوخ +الرسول +الرسولي +الرسوم +الرسومات +الرشاد +الرشاش +الرشاوى +الرشايدة +الرشح +الرشدان +الرشود +الرشيد +الرشيدة +الرشيدية +الرشيق +الرشيقة +الرصاص +الرصاصات +الرصاصة +الرصاصي +الرصافي +الرصد +الرصيد +الرصيص +الرصيف +الرصيفة +الرض +الرضا +الرضاعة +الرضع +الرضوانية +الرضوض +الرضي +الرضية +الرضيع +الرضيعة +الرطب +الرطبة +الرطل +الرطوبة +الرطيب +الرعاة +الرعاش +الرعاع +الرعاف +الرعاية +الرعب +الرعد +الرعشة +الرعي +الرعية +الرعيل +الرف +الرفا +الرفاة +الرفات +الرفادات +الرفاعي +الرفاه +الرفاهية +الرفض +الرفع +الرفعة +الرفق +الرفوف +الرفيع +الرفيعة +الرفيف +الرق +الرقائق +الرقاب +الرقابة +الرقاقة +الرقبة +الرقبية +الرقة +الرقراق +الرقص +الرقصات +الرقعة +الرقم +الرقمي +الرقمية +الرقن +الرقى +الرقي +الرقيب +الرقية +الرقيق +الرقيقة +الرقّة +الركائز +الركاب +الركابي +الركب +الركبة +الركض +الركن +الركنين +الركوب +الركود +الركون +الركيزة +الركيكة +الركين +الركّاب +الرماحي +الرماد +الرمادي +الرمال +الرماية +الرمة +الرمح +الرمز +الرمزي +الرمزية +الرمضاء +الرمعي +الرمعية +الرمل +الرملة +الرملية +الرموز +الرموش +الرمي +الرنانة +الرنين +الرنّانة +الرها +الرهان +الرهبان +الرهبانية +الرهبة +الرهبنة +الرهيب +الرهيبة +الرهيف +الروائع +الروائي +الروائية +الروائيين +الروابط +الروابي +الرواة +الرواتب +الرواج +الرواح +الرواد +الروايات +الرواية +الروبيان +الروتين +الروتيني +الروتينية +الروح +الروحاني +الروحانيات +الروحانية +الروحي +الروحية +الروس +الروسي +الروسية +الروشتة +الروضات +الروضة +الروعة +الروك +الروم +الروماتيزم +الرومان +الرومانتيكيون +الرومانسي +الرومانسية +الرومانسيون +الرومانسيين +الروماني +الرومانية +الرومانيين +الرومي +الرومية +الرون +الروّاد +الري +الريا +الرياح +الريادة +الرياض +الرياضات +الرياضة +الرياضى +الرياضي +الرياضيات +الرياضية +الرياضيين +الريال +الريالات +الريبافرين +الريبة +الريح +الريحان +الريحاني +الريحانية +الريحُ +الريش +الريشة +الريف +الريفي +الريفية +الريفييرا +الريفيين +الرين +الرينيسانس +الرُها +الرّئويّ +الرّئيسيّة +الرّعاية +الرّقعة +الرَّأي +الرَّابحة +الرَّابض +الرَّاجية +الرَّشيد +الرَّفيع +الرَّفيعة +الرَّمقُ +الرَّيَّانة +الز +الزئبق +الزائد +الزائدة +الزائدون +الزائر +الزائرون +الزائرين +الزائف +الزائفة +الزائلة +الزاحف +الزاحفة +الزاحفين +الزاخر +الزاخرة +الزاد +الزامبيزي +الزاهد +الزاهر +الزاهرة +الزاهية +الزاوية +الزبائن +الزبادي +الزبالة +الزبد +الزبدة +الزبل +الزبون +الزبى +الزبير +الزبيري +الزجاج +الزجاجات +الزجاجة +الزجاجي +الزجاجية +الزحام +الزحف +الزحمة +الزخات +الزخارف +الزخرفة +الزخرفي +الزخرفية +الزخم +الزر +الزرابي +الزرازير +الزراعات +الزراعة +الزراعى +الزراعي +الزراعيات +الزراعية +الزراعيين +الزراية +الزردة +الزرزور +الزرع +الزرق +الزرقا +الزرقاء +الزرقاءْ +الزرقة +الزركشة +الزركلي +الزرنيخ +الزروع +الزرَّاع +الزعامة +الزعتر +الزعراء +الزعم +الزعماء +الزعنفة +الزعيم +الزعيمة +الزفاف +الزفان +الزفرات +الزفير +الزقاق +الزكاة +الزكام +الزكرتاوي +الزكرتي +الزكوات +الزلة +الزلزال +الزلل +الزليزلي +الزليّج +الزمالة +الزمالك +الزمام +الزمان +الزمانية +الزمر +الزمكان +الزمكاني +الزملاء +الزمن +الزمني +الزمنية +الزميل +الزناتي +الزنازين +الزنجي +الزنجيات +الزنجية +الزنخ +الزنزانة +الزنك +الزنكي +الزنوج +الزنى +الزهايمر +الزهد +الزهر +الزهراء +الزهراني +الزهرة +الزهرية +الزهو +الزهور +الزهيدة +الزوائد +الزوابع +الزواج +الزواحف +الزوار +الزوارق +الزوال +الزواوي +الزوايا +الزوج +الزوجات +الزوجة +الزوجية +الزوجين +الزودربلاس +الزور +الزوراء +الزوزانثللي +الزوفا +الزولو +الزوي +الزويك +الزى +الزي +الزيات +الزيادات +الزيادة +الزيارات +الزيارة +الزيبق +الزيت +الزيتون +الزيتونة +الزيتونية +الزيتى +الزيتية +الزيج +الزيجات +الزيجة +الزيدوفودين +الزيدي +الزيز +الزيف +الزيلزلي +الزينة +الزيوت +الزَّاكي +الزَّاكيات +الزَّاكية +الزَّبَدُ +الزَّكَاةَ +الزَّوج +السأم +السؤال +السؤالان +السؤالين +السائب +السائح +السائحـين +السائحون +السائحين +السائد +السائدة +السائرون +السائرين +السائق +السائقين +السائل +السائلة +السائلين +السابحات +السابحة +السابع +السابعة +السابق +السابقان +السابقة +السابقتين +السابقون +السابقين +الساتر +الساحات +الساحة +الساحةِ +الساحر +الساحرة +الساحرتين +الساحق +الساحقة +الساحل +الساحلي +الساحلية +الساحلين +الساخر +الساخرة +الساخطة +الساخن +الساخنة +الساد +السادات +الساداتي +الساداتية +السادة +السادس +السادسة +الساذج +الساذجة +السارد +السارس +السارع +السارق +الساري +السارية +السارّة +الساس +الساسانية +الساسانيين +الساسي +الساطع +الساطعة +الساعات +الساعة +الساعتين +الساعـة +الساعي +الساعية +الساعين +الساق +الساقزلي +الساقطة +الساقين +الساكن +الساكنة +السالامي +السالب +السالبة +السالفة +السالم +السالمون +السالمية +السالين +السام +السامة +السامر +السامرائي +السامريين +السامقة +السامي +السامية +السامين +الساميّة +السامّة +الساندويتشات +الساهرة +الساهرين +الساهي +السايلة +السبا +السبائك +السباحة +السباحون +السباحين +السباعي +السباق +السباقات +السباقون +السبانخ +السبب +السببي +السببَ +السبت +السبحة +السبخة +السبع +السبعة +السبعين +السبعينات +السبعيني +السبعينيات +السبق +السبل +السبورة +السبيطة +السبيعي +السبيل +الست +الستائر +الستار +الستارة +الستة +الستر +السترونتيوم +الستمائة +الستيروئيدات +الستيروئيدية +الستيرويدات +الستيرويدية +الستين +الستينات +الستينيات +الستّ +السجائر +السجات +السجاجيد +السجاد +السجادة +السجع +السجل +السجلات +السجن +السجناء +السجود +السجون +السجين +السجينى +السح +السحاب +السحالي +السحايا +السحب +السحر +السحرة +السحري +السحرية +السحلية +السحنة +السحور +السحيق +السحيقة +السخافات +السخان +السخرية +السخط +السخف +السخية +السخيف +السخيفة +السد +السداد +السدادة +السداسية +السدر +السدو +السدود +السديري +السديس +السذاجة +السر +السراء +السراب +السراة +السراج +السرادق +السراديب +السراي +السرب +السرة +السرتفيكا +السرد +السردية +السردين +السرطان +السرطانات +السرطاني +السرعات +السرعة +السرقات +السرقة +السروات +السروجيون +السرور +السري +السريالية +السريان +السريانية +السرية +السرير +السريري +السريرية +السريع +السريعة +السريين +السرّاء +السرّة +السطان +السطح +السطحي +السطحية +السطر +السطل +السطو +السطوح +السطور +السطوع +السعادة +السعادةَ +السعادةُ +السعادةِ +السعال +السعة +السعداوي +السعدية +السعر +السعرات +السعفة +السعود +السعودة +السعودى +السعودىة +السعودىين +السعودي +السعوديات +السعودية +السعوديةوالتعرف +السعوديون +السعوديين +السعوية +السعى +السعي +السعيد +السعيدة +السعيدية +الســـببية +السفارات +السفارة +السفح +السفر +السفراء +السفلس +السفلي +السفلية +السفن +السفير +السفيرة +السفينة +السقائين +السقف +السقفِ +السقم +السقوط +السقيم +السقيمة +السكارى +السكاكر +السكان +السكانى +السكاني +السكانية +السكة +السكتة +السكر +السكرتير +السكرى +السكري +السكريات +السكرية +السكريد +السكريين +السكك +السكن +السكندري +السكنى +السكني +السكنية +السكوت +السكوتر +السكون +السكين +السكينة +السكَّر +السل +السلاجقة +السلاح +السلاسة +السلاسل +السلاطين +السلافية +السلال +السلالات +السلالة +السلالم +السلام +السلامة +السلب +السلبى +السلبي +السلبيات +السلبية +السلة +السلجوقي +السلجوقية +السلحفاة +السلسا +السلسبيلات +السلسلة +السلطات +السلطان +السلطانية +السلطة +السلطتين +السلطنة +السلطوي +السلع +السلعة +السلعتين +السلعي +السلعية +السلف +السلفي +السلفية +السلفيين +السلك +السلم +السلمي +السلمية +السلو +السلودحا +السلوفان +السلوك +السلوكات +السلوكي +السلوكيات +السلوكية +السليب +السليبة +السليسيوم +السليكون +السليلوز +السليم +السليماني +السليمانية +السليمة +السليمين +السلّة +السلَّم +السم +السماء +السمات +السماح +السماحة +السماد +السماسرة +السماع +السماعات +السماعة +السمان +السمانة +السماوات +السماوي +السماوية +السمة +السمح +السمحاء +السمحة +السمر +السمراء +السمرة +السمسم +السمع +السمعاني +السمعة +السمعي +السمعية +السمك +السمكات +السمكة +السمكي +السمكية +السمن +السمنة +السمو +السموات +السموم +السمية +السمير +السميط +السميع +السميك +السميكة +السمينات +السمينة +السميّة +السمّ +السمّية +السن +السناجب +السنامين +السنباطي +السنبلاوين +السنبلة +السنة +السنتين +السنجاب +السنجق +السند +السندان +السندباد +السنعوسي +السنن +السنهوري +السنوات +السنوسي +السنوسية +السنون +السنونو +السنوى +السنوي +السنوية +السنية +السنين +السنيون +السنّة +السهام +السهد +السهر +السهرات +السهرة +السهل +السهلة +السهول +السهولة +السوء +السواء +السوائل +السواتر +السواح +السواحل +السواحيلية +السواد +السوار +السواعد +السواقي +السوانى +السواني +السود +السوداء +السودان +السوداني +السودانية +السودانيون +السودانيين +السوداوي +السودة +السودية +السور +السوربون +السوري +السوريالية +السورية +السوريين +السوس +السوسرية +السوسيولوجية +السوطي +السوفياتي +السوفيتي +السوفييت +السوفييتي +السوفييتية +السوق +السوقية +السولاريم +السومرية +السومريين +السون +السونا +السوهاجية +السوي +السوية +السويد +السويدي +السويدية +السويديين +السويرة +السويس +السويسري +السويسريات +السويسرية +السويسي +السي +السيئة +السيئين +السيا +السياب +السياح +السياحات +السياحة +السياحـة +السياحـى +السياحـية +السياحى +السياحي +السياحية +السياحيين +السيادة +السيارات +السيارة +السياسات +السياسة +السياسي +السياسية +السياسيون +السياسيين +السياط +السياق +السياقة +السيانيد +السيب +السيتو +السيتوكينات +السيتووراثية +السيجار +السيجارة +السيجواي +السيخ +السيد +السيدات +السيدان +السيدة +السيدين +السير +السيراميك +السيرة +السيرتين +السيرك +السيركليزم +السيرورة +السيزيوم +السيطرة +السيـّاب +السيف +السيكا +السيل +السيلان +السيليكون +السيليكونية +السيلينيوم +السيلُ +السيمانتيكي +السيمفوني +السيمفونية +السيمفونيين +السين +السينائية +السيناريو +السيناريوهات +السينما +السينمائي +السينمائية +السينمائيين +السينمات +السينوباه +السيوطي +السيوف +السيوفي +السيول +السيولة +السيوي +السييء +السيّئ +السيّاب +السيّاح +السُحُب +السُمِّية +السّاخن +السّبب +السّر +السّرير +السّعال +السّفر +السّهل +السّيلان +السَّحاب +السَّلطة +السَّنِيَّة +السَّيدة +السَّير +السُّؤدد +السُّعداء +السُّمَحاء +الشأن +الشؤون +الشئ +الشئون +الشائخة +الشائع +الشائعات +الشائعة +الشائق +الشائقة +الشائك +الشائكة +الشاب +الشابة +الشابي +الشابين +الشابّ +الشابّة +الشابَّ +الشاة +الشاحب +الشاحبة +الشاحبين +الشاحنين +الشاذة +الشاذلي +الشارات +الشارد +الشاردة +الشارع +الشارقة +الشاروني +الشاسع +الشاسعة +الشاسيه +الشاش +الشاشات +الشاشة +الشاطئ +الشاطئية +الشاعر +الشاعران +الشاعرة +الشافعي +الشافعية +الشافعين +الشافي +الشاق +الشاقة +الشال +الشاليهات +الشالَ +الشام +الشامان +الشامة +الشامخ +الشامخة +الشامل +الشاملة +الشامي +الشامية +الشاه +الشاهد +الشاهق +الشاهقة +الشاهين +الشاى +الشاي +الشايب +الشايع +الشباب +الشبابية +الشباك +الشباكية +الشبان +الشبح +الشبكات +الشبكة +الشبكي +الشبكية +الشبه +الشبهات +الشبهة +الشبيلي +الشبيه +الشبيهة +الشتاء +الشتائم +الشتلات +الشتور +الشتوي +الشتوية +الشجار +الشجاع +الشجاعة +الشجاعية +الشجر +الشجرة +الشجرةِ +الشجري +الشجعان +الشجن +الشجو +الشجى +الشجي +الشجية +الشجيرات +الشجيّ +الشح +الشحات +الشحادة +الشحاذين +الشحمي +الشحمية +الشحن +الشحنات +الشحنة +الشحوب +الشحوم +الشحيحة +الشخص +الشخصانية +الشخصى +الشخصي +الشخصيات +الشخصية +الشخوص +الشخير +الشد +الشدائد +الشدة +الشدياق +الشديد +الشديدة +الشديدين +الشذوذ +الشر +الشراء +الشرائح +الشرائط +الشرائية +الشراب +الشرارات +الشراسة +الشراشف +الشراك +الشراكة +الشرايين +الشرب +الشرج +الشرجية +الشرح +الشرخ +الشرر +الشرس +الشرسة +الشرشرة +الشرط +الشرطة +الشرطةِ +الشرطي +الشرطيان +الشرطين +الشرع +الشرعي +الشرعية +الشرعيين +الشرف +الشرفة +الشرق +الشرقاوي +الشرقى +الشرقي +الشرقيات +الشرقية +الشرقيين +الشركاء +الشركات +الشركة +الشركسي +الشره +الشرهان +الشرهين +الشروخ +الشرود +الشرور +الشروط +الشروع +الشروق +الشريان +الشرياني +الشريانية +الشريحة +الشريدة +الشرير +الشريرة +الشريط +الشريعة +الشريف +الشريفات +الشريفة +الشريفية +الشريفين +الشريك +الشريم +الشطر +الشطرنج +الشطرين +الشطط +الشطي +الشظايا +الشظف +الشعائر +الشعاب +الشعار +الشعارات +الشعارين +الشعاعي +الشعاعية +الشعب +الشعبى +الشعبي +الشعبيات +الشعبية +الشعبين +الشعبيين +الشعر +الشعراء +الشعراني +الشعراوي +الشعرة +الشعروالنحو +الشعرواي +الشعري +الشعرية +الشعـري +الشعلة +الشعوب +الشعور +الشعورية +الشعير +الشعيرة +الشـفّاف +الشفاء +الشفاعة +الشفاف +الشفافة +الشفافية +الشفاه +الشفة +الشفتان +الشفتين +الشفر +الشفرة +الشفروليت +الشفط +الشفق +الشفقة +الشفهي +الشفهية +الشفوية +الشفيف +الشق +الشقاء +الشقة +الشقر +الشقعة +الشقق +الشقوق +الشقي +الشقيري +الشقيق +الشقيقات +الشقيقة +الشقيقتين +الشقيقُ +الشقين +الشقّ +الشك +الشكاوى +الشكر +الشكل +الشكلانية +الشكلي +الشكلية +الشكليون +الشكوك +الشكوى +الشكي +الشكّ +الشلابي +الشلاّل +الشلل +الشللي +الشللية +الشم +الشماتة +الشماعين +الشمال +الشمالى +الشمالي +الشمالية +الشماليون +الشماليين +الشمس +الشمسي +الشمسية +الشمسيين +الشمع +الشمعة +الشمعي +الشمعية +الشمل +الشموخ +الشموس +الشمول +الشمولية +الشمي +الشمية +الشناوي +الشنتريني +الشنفرى +الشنقيطي +الشنيعة +الشهادات +الشهادة +الشهد +الشهداء +الشهر +الشهرة +الشهرستاني +الشهري +الشهرية +الشهرين +الشهم +الشهوات +الشهود +الشهور +الشهي +الشهية +الشهيد +الشهير +الشهيرة +الشهيرين +الشهيق +الشوائب +الشواذ +الشوارد +الشوارع +الشواطئ +الشوال +الشواهد +الشور +الشورى +الشوط +الشوف +الشوق +الشوك +الشوكة +الشوكولاتة +الشوكي +الشوكية +الشيء +الشياطين +الشيب +الشيباني +الشيبة +الشيخ +الشيخان +الشيخة +الشيخوخة +الشيراتون +الشيرازية +الشيشة +الشيطان +الشيطانية +الشيعي +الشيف +الشيفرة +الشيقة +الشيكات +الشيوخ +الشيوع +الشيوعى +الشيوعي +الشيوعية +الشيوعيون +الشُعب +الشّبيهة +الشّخصيّة +الشّرق +الشّرقيّة +الشّطف +الشّهيّة +الشَّرف +الشَّعر +الشَّهامة +الصائب +الصائم +الصائمون +الصائمين +الصابر +الصابرة +الصابورة +الصابون +الصابوني +الصاحب +الصاخب +الصاخبة +الصادات +الصادر +الصادرات +الصادران +الصادرة +الصادق +الصادقة +الصادقين +الصارخ +الصارخة +الصارم +الصارمة +الصاروج +الصاروخ +الصاروخية +الصاعد +الصاعقة +الصافي +الصافية +الصافيتان +الصالات +الصالة +الصالح +الصالحات +الصالحة +الصالحين +الصالون +الصامت +الصامتة +الصامدة +الصانع +الصبا +الصباح +الصباحى +الصباحية +الصبار +الصبايا +الصبح +الصبحُ +الصبر +الصبور +الصبورة +الصبي +الصبيان +الصبيانية +الصبيانْ +الصبية +الصبيين +الصبّاح +الصبّار +الصح +الصحابة +الصحابي +الصحابية +الصحارى +الصحاري +الصحاف +الصحافة +الصحافي +الصحافيين +الصحبة +الصحة +الصحراء +الصحراوي +الصحراوية +الصحـراء +الصحف +الصحفى +الصحفي +الصحفيات +الصحفية +الصحفيين +الصحن +الصحو +الصحوة +الصحون +الصحي +الصحية +الصحيح +الصحيحة +الصحيحين +الصحيفة +الصحيّة +الصحيّون +الصحّة +الصخب +الصخر +الصخرة +الصخرةِ +الصخري +الصخرية +الصخور +الصد +الصدأ +الصدارة +الصداع +الصداق +الصداقات +الصداقة +الصدام +الصدامي +الصدامية +الصدد +الصدر +الصدري +الصدرية +الصدع +الصدف +الصدفة +الصدق +الصدقات +الصدمات +الصدمة +الصدور +الصدوق +الصدى +الصديد +الصديق +الصديقة +الصديقين +الصراحة +الصراخ +الصراصير +الصراط +الصراع +الصراعات +الصراف +الصرافة +الصرامة +الصرب +الصربية +الصرة +الصرح +الصرخة +الصرصر +الصرع +الصرف +الصروح +الصريح +الصريحة +الصرّة +الصعاب +الصعاليك +الصعب +الصعبة +الصعداء +الصعلوك +الصعوبات +الصعوبة +الصعود +الصعيد +الصعيدي +الصعيدين +الصــحـــة +الصـــحــــيح +الصف +الصفا +الصفاء +الصفات +الصفار +الصفاق +الصفة +الصفتان +الصفح +الصفحات +الصفحة +الصفر +الصفراء +الصفرة +الصفرية +الصفصاف +الصفعة +الصفقات +الصفن +الصفوة +الصفوف +الصفيح +الصفيحات +الصقر +الصقعبي +الصقلي +الصقلية +الصقليين +الصقلّي +الصقور +الصقيع +الصقيل +الصقيلة +الصلابة +الصلاة +الصلات +الصلاح +الصلاحيات +الصلاحية +الصلب +الصلبة +الصلة +الصلح +الصلصال +الصلصالية +الصلوات +الصليب +الصليبي +الصليبية +الصليبين +الصليبيون +الصليبيين +الصمامات +الصمت +الصملاخ +الصملاخية +الصمم +الصمود +الصميم +الصميمة +الصنابير +الصناديقيين +الصنارة +الصناع +الصناعات +الصناعة +الصناعى +الصناعي +الصناعية +الصناعيين +الصنبور +الصندل +الصندوق +الصنع +الصنعاني +الصنعية +الصنم +الصنوبر +الصنوبرية +الصنيع +الصهاينة +الصهبجية +الصهريج +الصهيوني +الصهيونية +الصهيونيين +الصواب +الصواريخ +الصوان +الصوانة +الصوت +الصوتي +الصوتية +الصوديوم +الصور +الصورة +الصورتين +الصوري +الصورية +الصوف +الصوفي +الصوفية +الصوفيين +الصولات +الصولو +الصوم +الصويا +الصياح +الصياد +الصيادلة +الصيادون +الصيادين +الصيارفة +الصيام +الصيان +الصيانة +الصيت +الصيحة +الصيد +الصيداوي +الصيدلاني +الصيدلانية +الصيدلة +الصيدلي +الصيدليات +الصيدلية +الصيرة +الصيف +الصيفى +الصيفي +الصيفية +الصين +الصيني +الصينية +الصينيتين +الصينيون +الصينيين +الصينييين +الصيوان +الصيّاح +الصّبيحة +الصّحي +الصّحّة +الصّحّيّة +الصّدر +الصّين +الصَّالحات +الصَّالحة +الصَّالحين +الصَّبر +الصَّلاَةَ +الصِّنْعة +الضأن +الضئيل +الضئيلة +الضائع +الضائعة +الضابط +الضاجة +الضاجّة +الضاحك +الضاحكة +الضاد +الضار +الضاربات +الضاربة +الضارة +الضارية +الضالة +الضالعين +الضام +الضامة +الضاوية +الضباب +الضباط +الضبب +الضبط +الضجة +الضجيج +الضحايا +الضحك +الضحكات +الضحل +الضحلة +الضحى +الضحية +الضحيّة +الضخامة +الضخم +الضخمة +الضد +الضدية +الضر +الضرائب +الضراعة +الضرب +الضربة +الضرر +الضرورات +الضرورة +الضروري +الضروريات +الضرورية +الضريبة +الضريبي +الضريح +الضرير +الضعاف +الضعف +الضعفاء +الضعيف +الضعيفة +الضفادع +الضفاف +الضفة +الضفتين +الضفدعة +الضلال +الضلع +الضماد +الضمادات +الضمان +الضمانات +الضمنية +الضموري +الضمير +الضنك +الضنى +الضوء +الضوئي +الضوئية +الضوابط +الضواحي +الضوضاء +الضياء +الضياع +الضيافة +الضيف +الضيق +الضيقة +الضيوف +الضيّق +الضَّعيف +الط +الطائر +الطائرات +الطائرة +الطائعون +الطائف +الطائفة +الطائفتين +الطائفي +الطائفية +الطائلة +الطابع +الطابق +الطابور +الطابوقات +الطاحونة +الطار +الطارئة +الطارئين +الطارقون +الطازجة +الطاسة +الطاعات +الطاعة +الطاعن +الطاعنون +الطاعون +الطافح +الطافي +الطافية +الطاقات +الطاقة +الطاقةالعالمية +الطاقم +الطاقي +الطاقية +الطالب +الطالبات +الطالبان +الطالبانيين +الطالبة +الطالبـان +الطالبية +الطالع +الطالعة +الطامة +الطامعين +الطاهر +الطاهرات +الطاهرة +الطاهرتين +الطاهيين +الطاولات +الطاولة +الطاووس +الطب +الطبائع +الطباخ +الطباشير +الطباع +الطباعة +الطبخ +الطبري +الطبع +الطبعات +الطبعة +الطبق +الطبقات +الطبقة +الطبقي +الطبقية +الطبل +الطبول +الطبولوجيا +الطبي +الطبيب +الطبية +الطبيةالفوريّة +الطبيعة +الطبيعى +الطبيعي +الطبيعيأن +الطبيعيات +الطبيعية +الطبيعيين +الطبّيّة +الطحالب +الطحلب +الطحين +الطرائق +الطرابيش +الطراز +الطرازين +الطرب +الطرح +الطرد +الطرز +الطرزي +الطرف +الطرفان +الطرفة +الطرفين +الطرق +الطرقات +الطرقية +الطروحات +الطرود +الطري +الطرية +الطريحي +الطريف +الطريفة +الطريق +الطريقة +الطريقتين +الطريقِ +الطعام +الطعم +الطعوم +الطفح +الطفرات +الطفرة +الطفل +الطفلان +الطفلة +الطفلية +الطفو +الطفولة +الطفولية +الطفيف +الطفيل +الطفيلي +الطفيليات +الطفيلية +الطفّ +الطقس +الطقوس +الطقوسي +الطلاء +الطلاءات +الطلاب +الطلابي +الطلابية +الطلاسم +الطلاق +الطلب +الطلبات +الطلبة +الطلبية +الطلسم +الطلعة +الطلق +الطلقاتُ +الطلوعين +الطليان +الطليعة +الطليعي +الطليق +الطليقة +الطلّ +الطمأنينة +الطماطم +الطمع +الطموح +الطموحات +الطموحة +الطموحين +الطمي +الطمّاعين +الطناحي +الطنطاوي +الطهاة +الطهطاوي +الطهي +الطوائف +الطوابع +الطوابق +الطوابير +الطواجن +الطوارئ +الطواف +الطوافة +الطوباسي +الطوباوية +الطود +الطور +الطوعي +الطوعية +الطوفان +الطول +الطولونية +الطولية +الطوى +الطويل +الطويلة +الطويلتين +الطيات +الطيارين +الطيب +الطيبة +الطيبين +الطير +الطيران +الطيرة +الطيفي +الطين +الطيني +الطيور +الطّالب +الطّبّيّة +الطّفح +الطّلبة +الظالم +الظالمة +الظامئة +الظاهر +الظاهرة +الظاهرتين +الظاهري +الظاهرية +الظباء +الظرف +الظرفاء +الظرفي +الظرفية +الظروف +الظريفة +الظفر +الظل +الظلال +الظلام +الظلامات +الظلامية +الظلف +الظلم +الظلمات +الظلمة +الظليل +الظليلة +الظلّ +الظمأ +الظمأى +الظن +الظهارية +الظهر +الظهران +الظهرية +الظهور +الظهيرة +الظواهر +الع +العائد +العائدات +العائدة +العائدين +العائق +العائل +العائلات +العائلة +العائلةِ +العائلي +العائلية +العائمة +العابثين +العابد +العابدين +العابر +العابرة +العابرين +العاتية +العاج +العاجز +العاجزين +العاجل +العاجلة +العاجية +العاجيّة +العادات +العادة +العادل +العادلة +العادم +العادي +العادية +العاديون +العاديين +العار +العاربة +العارض +العارف +العارفية +العارفين +العارم +العارمة +العاري +العارية +العازف +العازفون +العازفين +العاشر +العاشرة +العاشق +العاشقين +العاص +العاصف +العاصفة +العاصمة +العاصي +العاطفة +العاطفي +العاطفية +العاطل +العاطلين +العافية +العاق +العاقل +العاقلة +العاكسة +العالق +العالقة +العالم +العالمة +العالمى +العالمي +العالمية +العالميتين +العالمين +العالميون +العالميين +العالي +العاليات +العالية +العالِم +العام +العامة +العامةِ +العامر +العامرات +العامرة +العامري +العامل +العاملات +العاملان +العاملة +العاملون +العاملي +العاملين +العامليين +العامود +العامي +العامية +العامين +العامّة +العاهرة +العاهل +العبء +العباءات +العباءة +العبابي +العباد +العبادات +العبادة +العبار +العبارات +العبارة +العباس +العباسي +العباسية +العباسيين +العبث +العبثي +العبد +العبدالذي +العبداللطيف +العبر +العبرات +العبرانيين +العبري +العبرية +العبسي +العبق +العبقة +العبقري +العبقريات +العبقرية +العبقريتين +العبوات +العبوة +العبودية +العبور +العبيد +العبيدلي +العبيدى +العتاد +العتاهية +العتب +العتبات +العتبة +العتمة +العته +العتيدة +العتيق +العتيقة +العثرات +العثرة +العثمان +العثماني +العثمانية +العثمانيين +العثور +العجائب +العجاب +العجالة +العجب +العجز +العجزة +العجلات +العجلة +العجوز +العجول +العجيب +العجيبة +العجيري +العد +العداء +العدائية +العداد +العدالة +العداوة +العداوي +العدة +العدد +العددى +العددي +العددية +العدس +العدسات +العدسة +العدل +العدم +العدنانية +العدنانيين +العدو +العدوان +العدواني +العدوانية +العدول +العدوى +العدوية +العديد +العديدة +العديدين +العذاب +العذارى +العذب +العذبة +العذر +العذراء +العذريين +العذل +العذوبة +العراء +العراءِ +العرائض +العرابي +العرابية +العرافة +العراق +العراقة +العراقي +العراقية +العراقيل +العراقين +العراقيون +العراقيين +العراك +العرب +العربات +العربان +العربة +العربى +العربي +العربيان +العربية +العربيين +العرج +العرس +العرش +العرض +العرضات +العرضاني +العرضي +العرضيين +العرعر +العرف +العرفاني +العرفي +العرفية +العرق +العرقسوس +العرقي +العرقية +العرن +العروبة +العروبية +العروبيون +العروبيين +العروس +العروسان +العروسة +العروسين +العروض +العروق +العريبي +العريس +العريضة +العريف +العريق +العريقة +العريقةِ +العرَق +العز +العزاء +العزائم +العزباء +العزبي +العزة +العزف +العزل +العزلة +العزم +العزوف +العزيز +العزيزة +العزيزية +العزيمة +العساف +العساكر +العسف +العسكر +العسكرى +العسكري +العسكرية +العسكريين +العسل +العسلية +العسليتين +العسير +العش +العشاء +العشائر +العشائري +العشابين +العشاق +العشاقْ +العشب +العشبي +العشبية +العشة +العشر +العشرات +العشرة +العشرون +العشرين +العشرينيات +العشش +العشــــرين +العشق +العشماوي +العشوائي +العشوائية +العشّاق +العصا +العصابات +العصابة +العصارة +العصاري +العصافير +العصامي +العصامية +العصاميين +العصب +العصبان +العصبة +العصبونات +العصبي +العصبية +العصر +العصرى +العصرية +العصرين +العصفور +العصفوران +العصفورة +العصماء +العصور +العصيان +العصيبة +العصير +العض +العضال +العضب +العضدي +العضلات +العضلة +العضلي +العضلية +العضو +العضوات +العضوة +العضوية +العطاء +العطاءَ +العطار +العطارة +العطارون +العطارين +العطاس +العطايا +العطب +العطر +العطرة +العطرية +العطس +العطش +العطشان +العطشى +العطف +العطل +العطلات +العطلة +العطور +العطورات +العظاءات +العظام +العظم +العظماء +العظمة +العظمى +العظمي +العظمية +العظميين +العظيم +العظيمة +العـثور +العـفش +العفاف +العفة +العفريت +العفش +العفو +العفولة +العفوي +العفوية +العفيف +العقا +العقائد +العقائدي +العقائدية +العقاب +العقاد +العقار +العقارات +العقارب +العقاري +العقارية +العقاقير +العقب +العقبات +العقبان +العقبة +العقبي +العقد +العقدالتي +العقدة +العقدي +العقديات +العقدية +العقدين +العقرب +العقل +العقلاء +العقلاني +العقلانية +العقلانيين +العقلــــية +العقلي +العقلية +العقم +العقوبات +العقوبة +العقود +العقول +العقيد +العقيدة +العقيق +العقيلي +العقيم +العقّاد +العكاز +العكر +العكرماوي +العكس +العكسي +العكسية +العكيلي +العلا +العلاء +العلاج +العلاجات +العلاجي +العلاجية +العلاقات +العلاقة +العلامات +العلامة +العلان +العلاني +العلاوي +العلايلي +العلاّمة +العلب +العلبة +العلة +العلـــمـــاء +العلــم +العلف +العلم +العلماء +العلماني +العلمانية +العلمانيون +العلمانيين +العلمنة +العلمى +العلمي +العلمية +العلمين +العلميين +العلني +العلو +العلوج +العلوم +العلوي +العلوية +العلويين +العلوّ +العلى +العلي +العليا +العلية +العليل +العليلة +العم +العمائر +العمائم +العماد +العمادة +العمارات +العمارة +العمارنة +العمال +العمالة +العمالقة +العمالية +العمامة +العماني +العمانية +العمانيون +العمانيين +العمة +العمد +العمدة +العمدي +العمر +العمران +العمراني +العمرانية +العمرة +العمري +العمرية +العمرِ +العمق +العمل +العملاء +العملات +العملاق +العملاقة +العملاقين +العملة +العملي +العمليات +العملية +العملين +العمود +العمودي +العمولة +العموم +العمومي +العمومية +العمى +العمياء +العميد +العمير +العميق +العميقة +العميل +العناء +العنابي +العناصر +العناق +العنان +العناوين +العناية +العنايةالمناسبة +العنب +العنبر +العنجهية +العند +العندليب +العنصر +العنصري +العنصرية +العنصرين +العنف +العنق +العنقوديات +العنقودية +العنكبوت +العنكبوتي +العنكبوتية +العنوان +العنود +العنيد +العنيدة +العنيف +العنيفة +العهد +العهدة +العهدين +العهود +العوا +العوائد +العوائق +العوائل +العوادم +العوار +العوارض +العواصف +العواصم +العواطف +العواقب +العوالق +العوامات +العوامل +العود +العودة +العودُ +العوز +العولمة +العولمي +العولمية +العون +العويد +العويص +العيادات +العيادة +العيادي +العيار +العيارات +العيال +العيب +العيبين +العيد +العيسائى +العيسائي +العيسى +العيش +العين +العينات +العينان +العينة +العيني +العينية +العينيتين +العينين +العيوب +العيون +العيِّنات +العَشاء +العُجْب +العُرْس +العُظمى +العِليَّات +الـ +الـخَلْق +الـخُلُق +الـذين +الـشئون +الــتــســعــون +الـمأمـون +الـمأمون +الـمؤمنين +الـماجدة +الـمال +الـمتزوِّدة +الـمدرسة +الـمرأة +الـمرافق +الـمسبُوك +الـمصيبة +الـمصُونة +الـمعروف +الـمفاخر +الـمكارم +الـمكنُونة +الـمكْرُمة +الـملهوفين +الـملهُوف +الـمنزلة +الـمنصور +الـمهيب +الـمياه +الـمُوقنة +الـمَّرات +الـهمَّة +الف +الفأر +الفأس +الفؤاد +الفئات +الفئة +الفئران +الفئوي +الفئوية +الفاء +الفائت +الفائدة +الفائز +الفائزة +الفائزين +الفائض +الفائق +الفائقة +الفاتح +الفاتحة +الفاتحون +الفاتحين +الفاترينة +الفاتك +الفاتنة +الفاتيكان +الفاجع +الفاجعة +الفاحش +الفاحشة +الفاحص +الفاحم +الفاخر +الفاخرة +الفادح +الفادحة +الفارابي +الفارس +الفارسي +الفارسية +الفارض +الفارعة +الفارق +الفارقة +الفاروا +الفاروق +الفاروقية +الفاسد +الفاسدة +الفاسي +الفاشل +الفاشلين +الفاشيون +الفاشيين +الفاصل +الفاصلة +الفاضل +الفاضلة +الفاطمي +الفاطمية +الفاطميون +الفاطميين +الفاعل +الفاعلة +الفاعلية +الفاعلين +الفاقد +الفاكس +الفاكسات +الفاكهة +الفاكو +الفالق +الفانتوم +الفانية +الفاو +الفايكينك +الفتاة +الفتات +الفتاتان +الفتاح +الفتاكة +الفتاوى +الفتح +الفتحات +الفتحة +الفترات +الفترة +الفتق +الفتن +الفتنة +الفتوحات +الفتوق +الفتوى +الفتى +الفتي +الفتيا +الفتيات +الفتيان +الفتية +الفتّاك +الفتّان +الفجة +الفجر +الفجل +الفجوات +الفجوة +الفحام +الفحشاء +الفحص +الفحل +الفحم +الفحمية +الفحوص +الفحوصات +الفحول +الفخ +الفخاخ +الفخار +الفخارية +الفخامة +الفخذ +الفخذين +الفخر +الفخرانية +الفخرية +الفخم +الفخمة +الفخِّ +الفداء +الفدائية +الفدائيين +الفدرالي +الفدرالية +الفذ +الفذة +الفذلكة +الفذّة +الفراء +الفرائس +الفرائين +الفرات +الفرادة +الفرار +الفراز +الفراسة +الفراش +الفراشات +الفراشة +الفراعنة +الفرافير +الفراق +الفرانكفونيين +الفرانكوفونية +الفرج +الفرجة +الفرح +الفرحة +الفرخ +الفرد +الفردانية +الفردوس +الفردوسي +الفردوسية +الفردي +الفردية +الفرس +الفرسان +الفرش +الفرشاة +الفرص +الفرصة +الفرضية +الفرع +الفرعون +الفرعوني +الفرعونية +الفرعية +الفرفرية +الفرفور +الفرق +الفرقاء +الفرقة +الفرما +الفرن +الفرنة +الفرنج +الفرنجة +الفرنجي +الفرنجية +الفرنس +الفرنسي +الفرنسية +الفرنسيون +الفرنسيين +الفروسية +الفروض +الفروع +الفروق +الفروقات +الفريد +الفريدة +الفريدو +الفرير +الفريسة +الفريضة +الفريق +الفريقان +الفريقين +الفريكة +الفزع +الفزعات +الفساد +الفستق +الفسطاط +الفسيح +الفسيحة +الفسيفساء +الفشل +الفصائل +الفصام +الفصحى +الفصل +الفصلي +الفصلية +الفصلين +الفصول +الفصيح +الفصيحة +الفصيلة +الفضاء +الفضاءات +الفضائل +الفضائى +الفضائي +الفضائيات +الفضائية +الفضة +الفضفاضة +الفضل +الفضلاء +الفضلات +الفضلي +الفضول +الفضولية +الفضوليين +الفضي +الفضية +الفضيحة +الفضيل +الفضيلة +الفطر +الفطرة +الفطري +الفطريات +الفطرية +الفطور +الفطينُ +الفظ +الفظيع +الفعال +الفعالة +الفعاليات +الفعالية +الفعل +الفعلة +الفعلي +الفعلية +الفعليين +الفعّال +الفعّالة +الفعَّال +الفعَّالة +الفــــهم +الفقار +الفقارية +الفقاعي +الفقد +الفقر +الفقراء +الفقرات +الفقرة +الفقري +الفقرية +الفقمة +الفقه +الفقهاء +الفقهي +الفقهية +الفقير +الفقيرة +الفقيه +الفك +الفكاهة +الفكاهي +الفكر +الفكرة +الفكري +الفكرية +الفل +الفلاح +الفلاحون +الفلاحية +الفلاحين +الفلاسفة +الفلاش +الفلامنجو +الفلاني +الفلبين +الفلج +الفلجين +الفلس +الفلسطيني +الفلسطينية +الفلسطينين +الفلسطينيون +الفلسطينيين +الفلسفات +الفلسفة +الفلسفي +الفلسفية +الفلفل +الفلقة +الفلك +الفلكلور +الفلكلوري +الفلكلورية +الفلكي +الفلكيات +الفلكية +الفلل +الفلوجة +الفلوس +الفليبين +الفليفلة +الفليم +الفم +الفمتو +الفموي +الفموية +الفن +الفناء +الفنادق +الفنار +الفنان +الفنانات +الفنانة +الفنانتين +الفنانون +الفنانين +الفنانيين +الفنجان +الفندق +الفندقة +الفندقى +الفندقية +الفندقين +الفنون +الفنى +الفني +الفنية +الفنين +الفنيون +الفنيين +الفهارس +الفهد +الفهرس +الفهرسة +الفهرست +الفهم +الفهمي +الفوائد +الفوائض +الفواح +الفواخير +الفوارق +الفواصل +الفواكه +الفوج +الفور +الفوران +الفورمول +الفوري +الفوز +الفوسفات +الفوسفور +الفوسفورية +الفوضوي +الفوضويون +الفوضى +الفوط +الفوقا +الفوقية +الفول +الفولاذ +الفولتاج +الفولكلوري +الفولكلورية +الفونسو +الفوّاحة +الفياجرا +الفياض +الفيبرينوجينات +الفيتاميرات +الفيتامين +الفيتامينات +الفيتاينات +الفيحاء +الفيدرالي +الفيدرالية +الفيديو +الفيرمونات +الفيروزي +الفيروس +الفيروسات +الفيروسي +الفيروسية +الفيروسين +الفيزا +الفيزوف +الفيزياء +الفيزيائي +الفيزيائية +الفيزيائيين +الفيزيقي +الفيزيقية +الفيزيولوجي +الفيزيولوجية +الفيسيولوجيا +الفيشاوي +الفيصل +الفيصلية +الفيض +الفيضان +الفيضانات +الفيل +الفيلاريا +الفيلة +الفيلسوف +الفيلم +الفيمتوثانية +الفين +الفينايل +الفينة +الفينقية +الفينيقي +الفينيقية +الفينيقيون +الفينيقيين +الفيوري +الفيوم +الفَنَاء +الفُسَح +الفِعَال +القائد +القائدة +القائل +القائلة +القائلين +القائم +القائمة +القائمون +القائمين +القابع +القابعات +القابعة +القابعين +القابل +القابلة +القابليات +القابلية +القات +القاتل +القاتلة +القاتمة +القاحلة +القادة +القادر +القادرة +القادرون +القادرين +القادسية +القادم +القادمة +القادمون +القادمين +القاديانية +القاذفات +القاذورات +القارئ +القارئات +القارئة +القارات +القارب +القارة +القارس +القاسم +القاسي +القاسية +القاش +القاشان +القاصرة +القاصرين +القاضي +القاضية +القاطرات +القاطع +القاطعة +القاطن +القاطنة +القاع +القاعات +القاعة +القاعدة +القاعدية +القافلة +القالب +القامة +القانون +القانوني +القانونية +القانية +القاهرة +القب +القبائل +القباب +القبب +القبة +القبح +القبر +القبرصى +القبرصية +القبض +القبضة +القبطان +القبطي +القبطية +القبعات +القبعة +القبل +القبلة +القبلتين +القبلي +القبلية +القبور +القبول +القبيح +القبيحة +القبيل +القبيلة +القبّة +القتال +القتل +القتلة +القتلى +القتيل +القتيلُ +القحط +القحطانى +القحطاني +القحطانية +القحطانيين +القد +القداسة +القدامى +القدر +القدرات +القدرة +القدرثم +القدرية +القدس +القدسي +القدسية +القدم +القدماء +القدمين +القدوة +القدية +القدير +القديس +القديسة +القديسين +القديم +القديمة +القديمين +القذائف +القذارة +القذافي +القذرة +القذرون +القذى +القذيفة +القر +القرآن +القرآني +القرآنية +القراء +القراءات +القراءة +القراءةَ +القرائية +القرابة +القرابين +القراد +القرار +القرارات +القرارت +القرارين +القراصنة +القراض +القراقوز +القران +القرب +القربى +القرحات +القرحة +القرد +القردة +القردوح +القرش +القرشي +القرشيين +القرص +القرصي +القرض +القرضاوي +القرطاجي +القرطبي +القرع +القرعان +القرعة +القرعون +القرفة +القرفصاء +القرفصة +القرم +القرن +القرنة +القرنفلة +القرني +القرنية +القرنين +القرنيّة +القره +القروش +القروض +القرون +القروي +القروية +القرويون +القرى +القريب +القريبة +القريبون +القريبين +القرية +القريشى +القرين +القرينات +القرّاء +القرَّاء +القز +القزم +القس +القسام +القسري +القسطنطينية +القسم +القسمين +القسوة +القسَّام +القش +القشة +القشرة +القشريات +القشور +القص +القصائد +القصاب +القصابين +القصار +القصاص +القصاصات +القصب +القصبات +القصبة +القصبجي +القصبي +القصة +القصتين +القصد +القصدير +القصديري +القصديرية +القصر +القصرين +القصص +القصصي +القصصية +القصف +القصور +القصوى +القصيبي +القصيد +القصيدة +القصير +القصيرة +القصيم +القصّ +القصّة +القضاء +القضائية +القضاة +القضايا +القضبان +القضية +القضيتين +القط +القطائع +القطار +القطارات +القطارين +القطاع +القطاعات +القطاعين +القطان +القطانين +القطب +القطبي +القطبية +القطبيتين +القطبين +القطة +القطر +القطرات +القطران +القطرة +القطري +القطرية +القطط +القطع +القطعة +القطعي +القطن +القطني +القطنية +القطيع +القطيعة +القعدة +القــرن +القــمر +القفر +القفز +القفزة +القفص +القفطي +القفل +القفّازات +القلائل +القلادة +القلاع +القلاعية +القلاقل +القلانسي +القلب +القلبية +القلة +القلت +القلطقجي +القلعة +القلعتان +القلعتين +القلق +القلقة +القلقشندي +القلقلة +القلم +القلماوي +القلنسوة +القلوب +القلوي +القلي +القليل +القليلات +القليلة +القليلون +القمارى +القماش +القماشي +القماشية +القمامة +القمة +القمح +القمر +القمري +القمريات +القمرية +القمع +القمعي +القمقم +القمم +القميص +القمّة +القنابل +القناة +القناتين +القناديل +القناص +القناصلة +القناطر +القناع +القناعات +القناعة +القنافذ +القنال +القنبلة +القنصل +القنصلية +القنفذ +القنن +القنوات +القنواتي +القنينات +القنّاصة +القهر +القهري +القهوة +القوابل +القوات +القوارب +القوارض +القواسم +القواسمي +القواعد +القوافل +القواقع +القوالب +القوام +القوامة +القوانين +القوة +القوت +القوتلي +القوتين +القورساوي +القوس +القوصي +القوطية +القوقاز +القوقازية +القوقعة +القوقعين +القول +القولون +القولين +القوم +القومى +القومي +القوميات +القومية +القوميون +القوميين +القوني +القوى +القوي +القوية +القويم +القويين +القيادات +القيادة +القيادية +القياس +القياسات +القياسي +القياسية +القيام +القيامة +القيثارة +القيد +القيس +القيسي +القيصري +القيصرية +القيظ +القيعان +القيقب +القيلات +القيلة +القيم +القيمة +القيمري +القيمرية +القيمي +القيمية +القيود +القيوم +القيّمون +القيِّم +القَسَم +القَصَّار +القَطان +القَلْت +القَيْد +القُبلة +القِصَر +الك +الكآبة +الكأس +الكئوس +الكئيبة +الكائن +الكائنات +الكائنة +الكائنين +الكابتة +الكابوس +الكابوسية +الكابيتوليو +الكاتب +الكاتبة +الكاتدرائية +الكاثارية +الكاثاريين +الكاثرة +الكاثودية +الكاثوليك +الكاثوليكي +الكاثوليكية +الكادحين +الكادر +الكاديلاك +الكاذب +الكاذبة +الكارت +الكارتون +الكارتيزية +الكارثة +الكاردينال +الكارهون +الكارهين +الكاريبى +الكاريبي +الكاريكاتير +الكاسر +الكاسيت +الكاشف +الكافور +الكافي +الكافية +الكاكاو +الكالسيوم +الكامل +الكاملة +الكامن +الكامنة +الكامنَ +الكامي +الكاميرا +الكاميرات +الكانجارو +الكانديدا +الكانولا +الكاهنات +الكبائر +الكبار +الكبت +الكبد +الكبدية +الكبر +الكبرى +الكبري +الكبرياء +الكبريت +الكبريتية +الكبريين +الكبير +الكبيرات +الكبيران +الكبيرة +الكبيرتين +الكبيرين +الكبيسي +الكتاب +الكتابات +الكتابة +الكتابتين +الكتابية +الكتابين +الكتان +الكتانية +الكتب +الكتبة +الكتبي +الكتبُ +الكترونية +الكتف +الكتفين +الكتل +الكتلة +الكتيب +الكتيبات +الكتيبة +الكتّاب +الكتَّاب +الكثافة +الكثبان +الكثة +الكثر +الكثرة +الكثيب +الكثير +الكثيرات +الكثيرة +الكثيرمن +الكثيرون +الكثيرين +الكثيف +الكثيفة +الكثّ +الكثّة +الكحل +الكحلاوى +الكحلاوي +الكحلي +الكحول +الكحولي +الكحوليات +الكحّة +الكدمات +الكذب +الكرابينابي +الكراسي +الكرام +الكرامة +الكراهية +الكربلائي +الكربون +الكرة +الكرتون +الكرتين +الكردية +الكرز +الكرسي +الكرش +الكرم +الكرمل +الكرنفالية +الكرنك +الكروان +الكروز +الكروم +الكروموسومات +الكروي +الكريات +الكريب +الكريم +الكريمات +الكريمة +الكرينيولي +الكريهة +الكرّ +الكساح +الكسار +الكسالى +الكساند +الكساوي +الكسكسي +الكسل +الكسوة +الكسور +الكسول +الكسولة +الكسيرة +الكسيس +الكشافة +الكشط +الكشف +الكشفية +الكشك +الكشميري +الكشميرية +الكشميريين +الكشوف +الكعبة +الكعبي +الكعك +الكعكيين +الكــــائنات +الكـندية +الكف +الكفؤة +الكفاءات +الكفاءة +الكفاح +الكفار +الكفاف +الكفالة +الكفاوين +الكفايات +الكفاية +الكفتيين +الكفر +الكفراوي +الكفيف +الكفيلة +الكفين +الكل +الكلاب +الكلاسيكي +الكلاسيكية +الكلاسيكيون +الكلاسيين +الكلام +الكلامي +الكلامية +الكلاّبات +الكلب +الكلبي +الكلبيّ +الكلدانيين +الكلس +الكلسمية +الكلفة +الكلم +الكلمات +الكلمة +الكلوب +الكلور +الكلوروإيثين +الكلوروكينين +الكلوي +الكلوية +الكلى +الكلي +الكليات +الكليانية +الكلية +الكليم +الكلّي +الكلِّي +الكم +الكمادات +الكمال +الكمامة +الكمان +الكمبيوتر +الكمبيوترات +الكمبيوترز +الكمبيوترلساعات +الكمبيوترية +الكميات +الكمية +الكميت +الكميّ +الكمّ +الكنائس +الكناري +الكنانات +الكنانة +الكناني +الكنتربري +الكندي +الكندية +الكنديين +الكنز +الكنسي +الكنسية +الكنعانية +الكنعانيون +الكنعانيين +الكنوز +الكنيسة +الكنيست +الكهرب +الكهرباء +الكهربائي +الكهربائية +الكهربائيين +الكهربية +الكهرلة +الكهروبصريات +الكهروضوئي +الكهروكيميائي +الكهف +الكهل +الكهلة +الكهنة +الكهنوتية +الكهوف +الكهول +الكهولة +الكوات +الكوادر +الكوارث +الكواري +الكواسر +الكوافي +الكوافيرة +الكواكب +الكواكبي +الكواليس +الكوب +الكوبالت +الكوبرا +الكوبونات +الكوبي +الكوبيا +الكوبية +الكوبيون +الكوبيين +الكوت +الكوثر +الكود +الكورتيزول +الكورتيزون +الكورتيزونات +الكورتيزونية +الكورس +الكورنيش +الكورونا +الكورونافيرس +الكوفة +الكوكائين +الكوكاكولا +الكوكايين +الكوكب +الكوكبة +الكولاجين +الكولدج +الكولسترول +الكولونيالي +الكولونيل +الكوليج +الكوليرا +الكوم +الكومبيوتر +الكومبيوترات +الكوميدي +الكوميديا +الكوميدية +الكون +الكونت +الكونجرس +الكونكورد +الكوني +الكونية +الكوهيبا +الكوى +الكويت +الكويتي +الكويتيات +الكويتية +الكويتيين +الكيان +الكيانات +الكيبور +الكيس +الكيسي +الكيف +الكيفية +الكيفيّ +الكيلاني +الكيلومترات +الكيما +الكيمائي +الكيمائية +الكيماويات +الكيماوية +الكيمياء +الكيميائي +الكيميائية +الكيميائيون +الكيميائيين +الكينا +الكينين +الكَومة +الكُتلة +الكُتّاب +الكُرَماء +الكِبر +اللآلئ +اللؤلؤ +اللإنساني +اللا +اللاإرادية +اللاإقليدية +اللائبة +اللائحة +اللائق +اللائقة +اللائكية +اللائي +اللاتكافؤ +اللاتي +اللاتيني +اللاتينية +اللاجئ +اللاجئين +اللاجنسي +اللاحق +اللاحقة +اللاذع +اللاذقية +اللازم +اللازمة +اللازمةللقيام +اللازمن +اللازمين +اللاستيعاب +اللاسلكي +اللاسلكية +اللاشعور +اللاشيء +اللاصق +اللاصقة +اللاعب +اللاعبين +اللاعلمية +اللاعنصري +اللاعنف +اللاعودة +اللافت +اللافتات +اللافتة +اللافقاريات +اللافي +اللامبالاة +اللامتناهية +اللامجدية +اللامحدودة +اللامركزي +اللامسمى +اللامع +اللامعة +اللامعقول +اللامنتهية +اللامنطق +اللامنهجية +اللانمطي +اللانموذجي +اللانموذجية +اللانهائية +اللاهب +اللاهبة +اللاهثة +اللاهثتين +اللاهوت +اللاهوتيون +اللاواعي +اللاواقعي +اللاوعي +اللبائن +اللباس +اللبــــناني +اللبن +اللبنات +اللبناني +اللبنانية +اللبنانيون +اللبنانيين +اللبنة +اللبنية +اللبوس +اللبونة +اللبونيات +اللبيبة +اللتان +اللتر +اللتين +اللثام +اللثة +اللجاة +اللجان +اللجة +اللجج +اللجنة +اللجنتين +اللجنين +اللجوء +اللحاف +اللحاق +اللحامين +اللحظات +اللحظة +اللحم +اللحمة +اللحن +اللحوم +اللحى +اللحية +اللدائن +اللدائنية +اللدائنيين +اللدودة +اللذان +اللذة +اللذيذ +اللذيذة +اللذين +اللزج +اللزجة +اللزوجة +اللسان +اللسانيات +اللسانية +اللسع +اللسعات +اللص +اللصوص +اللصيق +اللصيقة +اللصين +اللطافة +اللطخة +اللطيف +اللعاب +اللعب +اللعبة +اللعبي +اللعن +اللعنات +اللعنة +اللعوب +اللعين +اللعينة +اللـــوحة +اللـه +اللف +اللفائف +اللفائفي +اللفظ +اللفظتين +اللفظين +اللقاء +اللقاءات +اللقاح +اللقاحات +اللقب +اللقطات +اللقمة +اللقى +اللماذا +اللماع +اللمحة +اللمس +اللمسات +اللمسة +اللمعان +اللمفاوية +اللمّاع +اللندني +اللندنية +اللنشات +الله +اللهاة +اللهاث +اللهاية +اللهب +اللهجات +اللهجة +اللهفة +اللهم +اللهو +اللهوب +اللهَ +اللهُ +اللهِ +اللواء +اللوائح +اللواتي +اللواط +اللوتس +اللوثة +اللوثرية +اللوح +اللوحات +اللوحة +اللوحــة +اللورد +اللوز +اللوزات +اللوزتين +اللوسيونات +اللوم +اللوموند +اللون +اللونان +اللوني +اللونية +اللويزة +اللي +اللياقة +الليالى +الليالي +الليبرالي +الليبرالية +الليبي +الليبيات +الليبية +الليبيدات +الليبيون +الليبيين +الليث +الليثي +الليدي +الليزر +الليزرية +الليسانس +الليطاني +الليفي +الليل +الليلة +الليلى +الليلي +الليلية +الليمفاوية +الليمون +الليمونادة +الليموند +الليونة +اللّهَ +اللَّبيبة +اللَّهو +اللَّهُ +اللَّهِ +الم +المآتة +المآذن +المآسي +المآقي +المآكل +المآل +المأتم +المأتى +المأثور +المأجورين +المأخوذة +المأدبة +المأزق +المأساة +المأساوي +المأساوية +المأكل +المأكولات +المألوف +المألوفة +المأمول +المأمون +المأمونة +المأهولة +المأوى +المؤاخاة +المؤاخذة +المؤامرة +المؤبد +المؤتلفة +المؤتمر +المؤتمرات +المؤثر +المؤثرات +المؤثرة +المؤثِّر +المؤجر +المؤجل +المؤجلة +المؤجّجة +المؤدلج +المؤدنين +المؤدي +المؤدية +المؤذن +المؤذنين +المؤذي +المؤذية +المؤرجات +المؤرخ +المؤرخون +المؤرخين +المؤسس +المؤسسات +المؤسسة +المؤسسي +المؤسسين +المؤسف +المؤسفة +المؤسّسات +المؤشر +المؤشرات +المؤطر +المؤقت +المؤقتة +المؤكد +المؤكسجة +المؤكسد +المؤلف +المؤلفات +المؤلفة +المؤلفون +المؤلفين +المؤلم +المؤلمة +المؤمثلة +المؤمل +المؤمن +المؤمنات +المؤمنة +المؤمنين +المؤهبة +المؤهل +المؤهلات +المؤهلة +المؤهلين +المؤول +المؤيد +المؤيدة +المئات +المئة +المئتين +المئذنة +المئوية +الما +الماء +المائة +المائتي +المائجة +المائدة +المائى +المائي +المائية +الماثل +الماثلة +الماجستير +الماحق +المادة +المادتين +المادي +المادية +الماديّة +المار +الماراثون +المارة +المارد +المارشال +المارق +الماركات +الماركة +الماركسي +الماركسية +المازندراني +المازني +الماسة +الماشية +الماضى +الماضي +الماضية +الماضيتين +الماضين +الماضيين +الماعز +المافيا +الماكدونالد +الماكر +الماكرة +الماكرو +الماكياج +الماكينات +الماكينة +المال +المالح +المالحة +المالطية +المالك +المالكة +المالي +المالية +الماليزي +الماليين +المانجو +المانح +المانحة +الماندرين +المانع +المانعة +المانوي +الماهر +الماهرة +الماهية +الماوراء +الماورائي +المايسترو +المباحث +المباحثات +المباحثية +المبادئ +المبادرات +المبادرة +المبادىء +المباراة +المبارك +المباركة +المباركية +المباريات +المباشر +المباشرة +المباعة +المبالاة +المبانى +المباني +المباهج +المبايض +المبتدئون +المبتدعة +المبتدعين +المبتذلات +المبتذلة +المبتسم +المبتعثون +المبتعثين +المبتعد +المبتعدة +المبتكر +المبتكرات +المبتكرة +المبتل +المبتلاة +المبتلة +المبثوثة +المبجل +المبجلة +المبحرين +المبخرة +المبدأ +المبدأين +المبدئي +المبدئية +المبدع +المبدعة +المبدعين +المبذول +المبرد +المبرر +المبررات +المبرمج +المبرّحة +المبسط +المبسطة +المبشر +المبشرات +المبشرة +المبشرين +المبشور +المبصرون +المبصرين +المبضع +المبطلين +المبطنة +المبعثرة +المبعوث +المبعوثة +المبكر +المبكرة +المبكى +المبكّرة +المبلل +المبللة +المبنى +المبني +المبنية +المبهجة +المبهرة +المبهمة +المبهورين +المبيت +المبيد +المبيدات +المبيض +المبيضات +المبيعات +المبيعة +المبين +المبيّضة +المتآكل +المتآلفة +المتآمرين +المتأثر +المتأثرة +المتأثّرة +المتأخر +المتأخرة +المتأصلين +المتألمة +المتأمل +المتأملين +المتأنية +المتأين +المتابع +المتابعة +المتاجر +المتاجرة +المتاح +المتاحة +المتاحـة +المتاحف +المتاخم +المتاخمة +المتاعب +المتانة +المتاهة +المتبادل +المتبادلة +المتباعدة +المتباينة +المتبرع +المتبرعين +المتبصر +المتبصرين +المتبع +المتبعة +المتبـــقـية +المتبقي +المتبقية +المتبني +المتتابع +المتتابعات +المتتابعة +المتتالية +المتتبع +المتجانس +المتجانسة +المتجاهلون +المتجاوبة +المتجاورة +المتجدد +المتجددة +المتجذر +المتجر +المتجسد +المتجسس +المتجعد +المتجمد +المتجمدة +المتجمعة +المتجه +المتجهم +المتجهمة +المتجولين +المتحاربة +المتحالفة +المتحالفين +المتحامل +المتحجبات +المتحجبة +المتحدة +المتحدث +المتحدثة +المتحدثين +المتحدرين +المتحررات +المتحررة +المتحرقة +المتحرك +المتحركة +المتحسسين +المتحصنين +المتحضر +المتحضِّرة +المتحـدة +المتحف +المتحفر +المتحفية +المتحفّزة +المتحققة +المتحكمين +المتحلل +المتحللة +المتحمس +المتحمسين +المتحول +المتحوّل +المتخاذلة +المتخاصمين +المتخصص +المتخصصة +المتخصصون +المتخصصين +المتخصّص +المتخلفة +المتخلفين +المتخم +المتخمين +المتخوفة +المتخيل +المتخيلة +المتداخل +المتداخلان +المتداخلة +المتداعي +المتداعية +المتدافعة +المتداول +المتدرب +المتدربات +المتدربون +المتدربين +المتدرج +المتدرجة +المتدفق +المتدفقة +المتدنية +المتدينة +المتدينين +المتديّن +المتر +المترابطة +المتراجعة +المترادفة +المتراصّة +المترافق +المترافقة +المتراكبة +المتراكضتين +المتراكم +المتراكمة +المترامي +المترامية +المتربة +المتربص +المتربصين +المتربّصين +المترتبة +المترجم +المترجمات +المترجمة +المترجمين +المتردد +المترددين +المتردي +المتردية +المترع +المترعة +المترعتين +المترفعين +المترفون +المترو +المتروبوليتان +المترين +المتزاحمين +المتزامنة +المتزايد +المتزايدة +المتزلجين +المتزمتات +المتزمّتة +المتزن +المتزوجة +المتزوجين +المتزيدين +المتزيِّنة +المتسابقة +المتسابقون +المتسابقين +المتسارع +المتسارعة +المتساقط +المتسامية +المتسبب +المتسربة +المتسربين +المتسرع +المتسرِّب +المتسرِّبة +المتسعة +المتسكر +المتسلطة +المتسللة +المتسللين +المتسوقين +المتسول +المتشائل +المتشائم +المتشائمة +المتشائمين +المتشابهة +المتشابهتين +المتشابهين +المتشبث +المتشبّع +المتشدد +المتشددة +المتشددين +المتشردين +المتشعب +المتشعّبة +المتشققة +المتشككين +المتشكلة +المتصارعة +المتصارعين +المتصاهرتين +المتصدئه +المتصدرين +المتصدع +المتصل +المتصلة +المتصلين +المتصوف +المتصوفة +المتصوّفة +المتضافرة +المتضامن +المتضرر +المتضررة +المتضررين +المتضلعين +المتضمخات +المتضمنة +المتضمَّنَة +المتطاير +المتطايرة +المتطرف +المتطرفة +المتطرفين +المتطفلين +المتطفِّلة +المتطلبات +المتطلعين +المتطلّعين +المتطور +المتطورة +المتطوعة +المتطوعين +المتطوِّرة +المتطوِّعين +المتظاهرين +المتع +المتعارف +المتعاركين +المتعاطفين +المتعاطين +المتعاقبة +المتعاقدين +المتعالية +المتعاملين +المتعاونة +المتعاونين +المتعايش +المتعب +المتعبان +المتعبة +المتعبدات +المتعة +المتعثر +المتعثرة +المتعددة +المتعرضين +المتعصبة +المتعصبين +المتعطرين +المتعطش +المتعففات +المتعففة +المتعلق +المتعلقة +المتعلم +المتعلمين +المتعلّم +المتعمد +المتعمقة +المتعهّرة +المتفائل +المتفاقمة +المتفاوضين +المتفتحة +المتفجر +المتفجرات +المتفجرة +المتفحص +المتفرج +المتفرجون +المتفرد +المتفرعة +المتفرّدة +المتفشي +المتفشية +المتفشيين +المتفطرات +المتفق +المتفوقين +المتقابلة +المتقاتلين +المتقاربة +المتقاربين +المتقاطعة +المتقاعدين +المتقدة +المتقدم +المتقدمة +المتقدمين +المتقطع +المتقطعة +المتقلب +المتقلبة +المتقن +المتقنة +المتقنين +المتكئ +المتكئة +المتكاسلون +المتكافئ +المتكامل +المتكاملة +المتكرر +المتكررة +المتكرّر +المتكسر +المتكسرة +المتكسّر +المتكلم +المتكلمين +المتكملة +المتكوم +المتكونة +المتكيف +المتلألئة +المتلاحقة +المتلازمة +المتلاطمة +المتلجلج +المتلصصين +المتلقاة +المتلقي +المتلقّي +المتلكئ +المتمادية +المتماسك +المتماوت +المتماوج +المتمثل +المتمثلان +المتمثلة +المتمحورة +المتمدد +المتمرد +المتمردون +المتمردين +المتمرسة +المتمرسين +المتمكن +المتمكنة +المتمم +المتموجة +المتمورة +المتميز +المتميزة +المتميزين +المتناثرة +المتناحرين +المتناسخ +المتنافرة +المتناقض +المتناقضات +المتناقضة +المتنامى +المتنامي +المتنامية +المتناهي +المتناهية +المتنبى +المتنبي +المتنبّهين +المتنخرة +المتنزهات +المتنسكين +المتنصلات +المتنكرة +المتنورة +المتنورين +المتنوع +المتنوعة +المتنوّع +المتهافت +المتهالكة +المتهاونة +المتهدجة +المتهدم +المتهم +المتهمة +المتهمون +المتهمين +المتهور +المتواتر +المتواجدين +المتوارثة +المتواريات +المتوازنة +المتوازية +المتواصل +المتواصلة +المتواضع +المتواضعة +المتواعدون +المتوافر +المتوافرة +المتوافقة +المتوالية +المتوترة +المتوجه +المتوجّه +المتوحش +المتوحشة +المتوحّد +المتورطة +المتورطين +المتورم +المتوسط +المتوسطة +المتوسطةـ +المتوسطية +المتوضعة +المتوفرة +المتوفى +المتوقع +المتوقعة +المتوقف +المتوقَّعَة +المتوكل +المتولد +المتولدة +المتوهج +المتوهجة +المتوهّج +المتوّجة +المتيسرة +المتين +المتينة +المتّحدة +المتّقد +المثابر +المثابرة +المثارة +المثاعيب +المثال +المثالي +المثالية +المثالين +المثانة +المثبت +المثبتة +المثبط +المثبطة +المثقب +المثقبة +المثقف +المثقفة +المثقفين +المثقل +المثقوب +المثكنه +المثل +المثلث +المثلثات +المثلجة +المثلى +المثلية +المثمر +المثمرة +المثمن +المثوبة +المثير +المثيرة +المثيل +المجادلة +المجادلين +المجاذيف +المجاري +المجاز +المجازر +المجازفة +المجازي +المجازية +المجاعات +المجاعة +المجال +المجالات +المجالس +المجالين +المجامع +المجاملات +المجاملة +المجامِع +المجانى +المجاني +المجانية +المجانين +المجاهد +المجاهدون +المجاهدين +المجاهل +المجاور +المجاورة +المجبول +المجبولة +المجتمع +المجتمعات +المجتمعة +المجتمعي +المجتمعية +المجتمعين +المجد +المجدبة +المجدد +المجددة +المجدولة +المجدي +المجدين +المجدّ +المجراة +المجرات +المجرة +المجرد +المجردة +المجرم +المجرمة +المجرمين +المجرى +المجريات +المجرَّدة +المجزي +المجسدة +المجسم +المجسمات +المجعّد +المجلات +المجلة +المجلتان +المجلتين +المجلد +المجلدات +المجلس +المجمدة +المجمع +المجمعات +المجموعات +المجموعة +المجموعتان +المجموعتين +المجنحة +المجنون +المجنونة +المجهر +المجهرية +المجهزة +المجهود +المجهول +المجهولة +المجوس +المجونية +المجيء +المجيب +المجيبين +المجيد +المجين +المجّاني +المحاجاة +المحاذية +المحار +المحارب +المحاربون +المحاربين +المحاسبي +المحاسيب +المحاصر +المحاصرات +المحاصرة +المحاصيل +المحاضر +المحاضرات +المحاضرة +المحاضرين +المحاضن +المحاطة +المحافظ +المحافظات +المحافظة +المحافظين +المحافل +المحاق +المحاكاة +المحاكم +المحاكمات +المحاكمة +المحال +المحاماة +المحامي +المحاميات +المحامين +المحاور +المحاورة +المحاولات +المحاولة +المحايد +المحببة +المحبة +المحبوس +المحبين +المحبّان +المحتاج +المحتاجة +المحتاجين +المحتدم +المحتدمة +المحترفة +المحترفون +المحترفين +المحترقة +المحتشد +المحتفى +المحتقنة +المحتكين +المحتل +المحتلة +المحتلين +المحتمل +المحتملة +المحتملين +المحتوى +المحتويات +المحتوية +المحتَمَل +المحجر +المحجوب +المحجوز +المحدثة +المحدثون +المحدثين +المحدد +المحددات +المحددة +المحدق +المحدود +المحدودة +المحدودين +المحدَّد +المحذوفة +المحراب +المحراث +المحررة +المحرق +المحرقة +المحرك +المحركات +المحركة +المحرم +المحرمات +المحرمين +المحروسة +المحروقات +المحروقة +المحرومة +المحرّض +المحرّضة +المحرّكة +المحزن +المحسن +المحسنات +المحسنة +المحسوب +المحسوبة +المحسّنات +المحسّنة +المحشر +المحشية +المحصلة +المحصورة +المحصول +المحصولي +المحصولين +المحض +المحضة +المحضرة +المحطات +المحطة +المحطم +المحظور +المحظورات +المحظوظين +المحـلى +المحـلية +المحفزة +المحفور +المحفورة +المحفوظ +المحفوظة +المحفوف +المحقق +المحققة +المحققين +المحك +المحكم +المحكمة +المحكمين +المحكوم +المحكي +المحكية +المحل +المحلاة +المحلات +المحلة +المحلقة +المحلل +المحللين +المحلول +المحلى +المحلي +المحلية +المحليون +المحليين +المحلّ +المحلّيّ +المحلّيّون +المحلّيّين +المحمدية +المحمرّ +المحمل +المحملة +المحمودة +المحمول +المحمولة +المحمومة +المحميات +المحمية +المحمّل +المحمَّرة +المحن +المحنة +المحنية +المحو +المحور +المحوري +المحورية +المحوسب +المحوَّرَة +المحير +المحيرة +المحيط +المحيطات +المحيطة +المحيطين +المحيّرة +المخ +المخابرات +المخاتلة +المخاريط +المخازن +المخاض +المخاط +المخاطب +المخاطبة +المخاطر +المخاطرة +المخاطي +المخاطية +المخاطَب +المخاطِب +المخالف +المخالفة +المخالفين +المخاوف +المخبر +المخبري +المخبرية +المخبرين +المخبوءة +المخبول +المختار +المختارات +المختارة +المختبر +المختبرات +المختبرية +المخترق +المخترقين +المختزلة +المختزنة +المختص +المختصة +المختصر +المختصرة +المختصين +المختفين +المختلط +المختلطة +المختلف +المختلفة +المختلفين +المختنق +المختنقة +المختوم +المختومة +المختَبَرات +المخثر +المخجل +المخدرات +المخربة +المخربين +المخرج +المخرجة +المخرجين +المخرشة +المخروطية +المخرِّب +المخرِّبة +المخزن +المخزومي +المخزون +المخزونة +المخزية +المخصب +المخصبات +المخصبة +المخصص +المخصصات +المخصصة +المخصصتين +المخصيون +المخصّصة +المخصِّبات +المخضر +المخضرة +المخضرم +المخضرمين +المخضرّ +المخطط +المخططات +المخطوط +المخطوطات +المخطوطة +المخفضة +المخفف +المخففة +المخفية +المخفّف +المخل +المخلب +المخلبية +المخلص +المخلصة +المخلصون +المخلصين +المخلفات +المخلوطة +المخلوع +المخلوق +المخلوقات +المخلوقين +المخلَّفات +المخملي +المخملية +المخموجة +المخول +المخولة +المخيال +المخية +المخيف +المخيفة +المخيفتان +المخيم +المخيمات +المخيّلة +المد +المداخل +المداد +المدادة +المدار +المداراة +المدارات +المدارس +المدافع +المدافعون +المدافعين +المدافن +المداهم +المداوي +المدببة +المدة +المدجّن +المدجّنة +المدخر +المدخرات +المدخرون +المدخل +المدخلات +المدخنين +المدر +المدرات +المدرارة +المدرب +المدربة +المدربةُ +المدربون +المدرجات +المدرجة +المدرحي +المدرحية +المدرس +المدرسات +المدرسة +المدرسون +المدرسي +المدرسية +المدرسين +المدركة +المدروسة +المدسوسة +المدعو +المدعوة +المدعوم +المدعومة +المدعوين +المدعي +المدفأة +المدفعا +المدفعية +المدفوعات +المدفون +المدفونة +المدقق +المدققة +المدقوق +المدلاة +المدلل +المدللة +المدلولات +المدمجة +المدمر +المدمرة +المدمنين +المدمّر +المدمِّر +المدمِّرة +المدن +المدنى +المدني +المدنية +المدنيين +المدهش +المدهشة +المدهونة +المدور +المدورة +المدوى +المدوي +المدوية +المدوّن +المدوّي +المدوّية +المدى +المدي +المديد +المديدة +المدير +المديرات +المديرة +المديرية +المديـنة +المدين +المدينات +المدينة +المدينتين +المدّ +المدّاح +المدِّية +المذاب +المذابح +المذاق +المذاقات +المذاكرة +المذاهب +المذبوحين +المذكرات +المذكرة +المذكور +المذكورة +المذكِّر +المذنبين +المذهب +المذهبة +المذهبية +المذهبين +المذهل +المذهلة +المذياع +المذيب +المذيع +المذيعة +المر +المرء +المرآة +المرأة +المرئي +المرئيات +المرئية +المرابط +المرابطون +المرابي +المرابيع +المرات +المراتب +المراجع +المراجعة +المراجعين +المراجل +المراجين +المراحل +المراد +المرادة +المرادفة +المرارة +المرازيق +المراسلات +المراصد +المراطم +المراعي +المرافئ +المرافق +المرافقة +المرافقين +المراقب +المراقبة +المراقبون +المراقبين +المراكب +المراكز +المراكمة +المرام +المراهقة +المراهقون +المراهقين +المراهم +المرايا +المربد +المربع +المربعات +المربعة +المربوط +المربوطة +المربي +المربين +المرة +المرتاحة +المرتبات +المرتبة +المرتبط +المرتبطة +المرتجعة +المرتجف +المرتجلة +المرتجلين +المرتحل +المرتحلون +المرتخية +المرتديات +المرتدين +المرتزقة +المرتعب +المرتفع +المرتفعات +المرتفعة +المرتفعتين +المرتقب +المرتقبة +المرتكز +المرتكزات +المرتين +المرج +المرجان +المرجاني +المرجانيات +المرجانية +المرجة +المرجح +المرجع +المرجعي +المرجعيات +المرجعية +المرجعَ +المرجل +المرجو +المرجوة +المرجوّة +المرح +المرحاض +المرحة +المرحلة +المرحلتين +المرحلي +المرحوم +المرحومين +المرحّلين +المرخص +المردلي +المردود +المردودات +المرزوقي +المرزوقية +المرسل +المرسلة +المرسلين +المرسم +المرسيدس +المرشح +المرشحة +المرشحـة +المرشحين +المرشد +المرشدين +المرشوشة +المرصد +المرصع +المرصفي +المرصود +المرصوف +المرصوفة +المرض +المرضى +المرضي +المرضية +المرطبات +المرعب +المرعبة +المرعى +المرعية +المرفأ +المرفق +المرفه +المرفوع +المرفوعة +المرقص +المرقم +المركب +المركبات +المركبة +المركبين +المركز +المركزة +المركزي +المركزية +المركزين +المركونة +المركّب +المركّبات +المركَّب +المرمر +المرموقة +المرموقين +المرميين +المرميّة +المرن +المرنة +المرهف +المرهم +المرواس +المروج +المروجون +المروحية +المرور +المرورية +المروضة +المروع +المرونة +المرويات +المري +المريب +المريح +المريحة +المريخ +المريدون +المريدين +المرير +المريرة +المريض +المريضة +المريعة +المرينية +المرينيين +المرّة +المرَّة +المرُّ +المزابل +المزاج +المزاح +المزاحمين +المزاد +المزار +المزارع +المزارعون +المزارعين +المزامير +المزايا +المزايدة +المزايدين +المزبد +المزبلة +المزج +المزجاة +المزخرف +المزدحم +المزدحمة +المزدحمين +المزدهرة +المزدوج +المزدوجات +المزدوجة +المزرعة +المزركشة +المزروع +المزروعات +المزروعة +المزري +المزرية +المزعج +المزعجة +المزعوم +المزكي +المزمار +المزمع +المزمن +المزمنة +المزهوين +المزود +المزودة +المزورون +المزية +المزيج +المزيد +المزيف +المزيفة +المزين +المزينة +المزيّفة +المسألة +المسؤول +المسؤولة +المسؤولون +المسؤوليات +المسؤولية +المسؤولين +المسئول +المسئولة +المسئولون +المسئوليات +المسئولية +المسئولين +المسا +المساء +المساءات +المسائل +المسائية +المسابقات +المساجات +المساجد +المساجين +المساحات +المساحة +المسار +المسارات +المسارح +المساري +المسارين +المساس +المساعد +المساعدات +المساعدة +المساعدين +المساعي +المسافات +المسافة +المسافر +المسافرة +المسافرون +المسافرين +المساكن +المساكنة +المساكين +المسالك +المسالم +المسالمين +المسامات +المسامحة +المسامرات +المسامير +المساندة +المساهمات +المساهمة +المساهمين +المساوئ +المساواة +المساومة +المساوية +المسبب +المسببات +المسببة +المسبحة +المسبق +المسبقة +المسبوكة +المسبّب +المسبّبة +المستأثرة +المستأجرة +المستأصلة +المستبد +المستبصرة +المستبطن +المستبطنة +المستبعد +المستتر +المستترة +المستترين +المستثمر +المستثمرة +المستثمرون +المستثمرين +المستجدات +المستجدة +المستجديات +المستحب +المستحبة +المستحدث +المستحدثة +المستحدَثة +المستحدَثَة +المستحسن +المستحضرات +المستحـق +المستحق +المستحقة +المستحقين +المستحيل +المستحيلات +المستحيلة +المستخدم +المستخدمان +المستخدمة +المستخدمين +المستخرج +المستخرجة +المستخلص +المستدامة +المستدرك +المستدقه +المستديرة +المستديرتين +المستديم +المستديمة +المستر +المسترخية +المستردة +المستردفين +المستردِفة +المستسلمة +المستشار +المستشرق +المستشرقة +المستشرقون +المستشرقين +المستشري +المستشعرة +المستشفى +المستشفيات +المستضعفة +المستضعفين +المستطاع +المستطيلة +المستعارة +المستعدين +المستعرب +المستعربين +المستعصية +المستعمر +المستعمرات +المستعمرة +المستعمرون +المستعمرين +المستعمل +المستعملة +المستعيد +المستفحلة +المستفز +المستفيد +المستفيدون +المستفيدين +المستفيضة +المستقبل +المستقبلات +المستقبلي +المستقبليات +المستقبلية +المستقر +المستقرة +المستقرَّة +المستقل +المستقلة +المستقلين +المستقيم +المستكبرة +المستكشفين +المستلزمات +المستلقين +المستلهم +المستلهمة +المستمد +المستمدة +المستمر +المستمرة +المستمع +المستمعون +المستمعين +المستميتة +المستنبتات +المستنبطة +المستند +المستندة +المستنصر +المستنصرية +المستنقع +المستنقعات +المستنيرة +المستنيرون +المستنيرين +المستهدف +المستهدفة +المستهلك +المستهلكة +المستهلكون +المستهلكين +المستوحدة +المستودع +المستورد +المستوردة +المستوطنات +المستوطنة +المستوطنون +المستوطنين +المستوى +المستوي +المستويات +المستوية +المستويين +المسجد +المسجدية +المسجل +المسجلة +المسجلين +المسجى +المسجّى +المسح +المسحوبة +المسحور +المسحورة +المسحوق +المسحوقين +المسحّرين +المسخ +المسدة +المسرجة +المسرح +المسرحي +المسرحيات +المسرحية +المسرحيين +المسرطنة +المسرعة +المسرفين +المسروق +المسروقات +المسروقة +المسطح +المسطحات +المسطحة +المسعودي +المسعورين +المسعى +المسفوكة +المسقط +المسقفات +المسقوف +المسقوفة +المسك +المسكن +المسكنات +المسكوب +المسكوت +المسكون +المسكونة +المسكونية +المسكين +المسكينة +المسلح +المسلحة +المسلسل +المسلسلات +المسلسلين +المسلط +المسلطة +المسلك +المسلكيات +المسلم +المسلمات +المسلمة +المسلمون +المسلمين +المسلوب +المسلية +المسلّم +المسلَّحة +المسماة +المسمارية +المسماع +المسمم +المسممة +المسموح +المسموع +المسموعة +المسموم +المسمى +المسميات +المسميان +المسمّمة +المسن +المسنات +المسند +المسننة +المسنين +المسوحات +المسودة +المسوقة +المسيار +المسيح +المسيحي +المسيحية +المسيحيون +المسيحيين +المسير +المسيرة +المسيسبي +المسيسيبي +المسيطرة +المشئوم +المشئومة +المشابك +المشابهة +المشاة +المشاحنات +المشادات +المشادة +المشار +المشارف +المشارقة +المشارك +المشاركات +المشاركة +المشاركون +المشاركين +المشارى +المشاري +المشاريع +المشاعر +المشاعل +المشافي +المشاق +المشاكل +المشاهد +المشاهدات +المشاهدة +المشاهدين +المشاهير +المشايخ +المشبع +المشبعة +المشبوب +المشبوبة +المشبوه +المشبوهة +المشتاق +المشتبه +المشتراة +المشترك +المشتركة +المشتركين +المشترون +المشتري +المشتريات +المشترية +المشترين +المشتعل +المشتعلة +المشتق +المشتقات +المشتقة +المشتل +المشجرة +المشجعة +المشجعين +المشحون +المشحونة +المشخص +المشدد +المشددة +المشدود +المشردة +المشرع +المشرف +المشرفة +المشرفون +المشرفين +المشرق +المشرقة +المشرقي +المشرقية +المشركون +المشروبات +المشروبة +المشروط +المشروع +المشروعات +المشروعة +المشروعية +المشرّف +المشط +المشطية +المشع +المشعة +المشعر +المشعّة +المشـافي +المشفقة +المشفى +المشقوق +المشكلات +المشكلة +المشكورة +المشكوك +المشلولة +المشنقة +المشهد +المشهود +المشهودة +المشهور +المشهورة +المشهورين +المشوار +المشورة +المشوقة +المشوهة +المشوّهة +المشي +المشية +المشير +المشيعين +المص +المصائب +المصائر +المصاب +المصابات +المصابة +المصابيح +المصابين +المصاحب +المصاحبة +المصادر +المصادرات +المصادرة +المصادف +المصادفات +المصادفة +المصادقة +المصارحة +المصارعين +المصارف +المصاريف +المصاعب +المصاعد +المصالح +المصالحة +المصانع +المصاهرة +المصايد +المصايف +المصباح +المصبّات +المصحف +المصداقية +المصدر +المصدران +المصدرة +المصدرون +المصدرين +المصدّرة +المصدِّرة +المصرارة +المصرة +المصرف +المصرفي +المصرفية +المصروف +المصروفات +المصرى +المصري +المصريات +المصرية +المصريون +المصريين +المصطافون +المصطبة +المصطفة +المصطفون +المصطفى +المصطفي +المصطلح +المصطلحات +المصعد +المصفف +المصفى +المصقولة +المصل +المصلحة +المصلحون +المصلحين +المصلين +المصمـمون +المصمم +المصممة +المصنع +المصنعة +المصنعين +المصنفات +المصنوع +المصنوعات +المصنوعة +المصنّع +المصنِّع +المصهور +المصهورة +المصور +المصورة +المصورين +المصون +المصونة +المصيد +المصيدة +المصير +المصيري +المصيرية +المصيف +المضاءة +المضاجع +المضاجعات +المضاجعون +المضاد +المضادات +المضادة +المضادّات +المضادّة +المضاربات +المضارين +المضاعفات +المضاف +المضافة +المضامين +المضاهية +المضايقات +المضبوط +المضبوطات +المضبوطة +المضحكاتي +المضحكة +المضحكون +المضحكين +المضحي +المضخة +المضرة +المضطر +المضطرب +المضطربة +المضللة +المضلّع +المضمار +المضمارين +المضمنة +المضمون +المضمونة +المضموني +المضمونية +المضني +المضنية +المضى +المضي +المضيئة +المضيف +المضيفة +المضيق +المضيّ +المطابخ +المطابع +المطابقة +المطار +المطارات +المطارح +المطارد +المطاردات +المطاردة +المطاط +المطاعم +المطاف +المطالب +المطالبات +المطالبة +المطالع +المطالعة +المطامح +المطامع +المطبخ +المطبعة +المطبقة +المطبوخ +المطبوع +المطبوعات +المطبوعة +المطبّقة +المطر +المطرب +المطربة +المطربين +المطرد +المطردة +المطرزة +المطرق +المطرقة +المطرقية +المطروح +المطروحة +المطرودين +المطروق +المطرية +المطرَّز +المطعم +المطعمة +المطعون +المطــــلق +المطل +المطلب +المطلة +المطلع +المطلق +المطلقات +المطلقة +المطلقين +المطلوب +المطلوبة +المطلوبين +المطلية +المطمع +المطهرة +المطهرون +المطهم +المطورة +المطوع +المطولة +المطوّلة +المطير +المطيرة +المطّرد +المظالم +المظاهر +المظاهرات +المظروف +المظفر +المظلم +المظلمة +المظلوم +المظلومين +المظلّة +المظهر +المظهري +المعابد +المعاجم +المعاداة +المعادلات +المعادلة +المعادن +المعادي +المعادية +المعارض +المعارضة +المعارضون +المعارضين +المعارف +المعارك +المعاش +المعاشرة +المعاصر +المعاصرة +المعاصرين +المعاصي +المعاطي +المعاقون +المعاقين +المعاكس +المعاكسة +المعالج +المعالجات +المعالجة +المعالجين +المعالفة +المعالم +المعامل +المعاملات +المعاملة +المعاناة +المعاني +المعاهد +المعاهدات +المعاهدة +المعاونة +المعاىير +المعايشة +المعاينة +المعايير +المعبأة +المعبد +المعبدة +المعبر +المعبرة +المعبود +المعبّدة +المعبّرة +المعبَّأة +المعتاد +المعتادة +المعتبرة +المعتدل +المعتدلة +المعتدلين +المعتدون +المعتدية +المعتدين +المعترض +المعترف +المعترك +المعتز +المعتزلة +المعتصمين +المعتق +المعتقد +المعتقدات +المعتقل +المعتقلات +المعتلة +المعتم +المعتمة +المعتمد +المعتمدة +المعتمدين +المعتمر +المعتمرين +المعتنى +المعتورة +المعتوهة +المعتّق +المعجب +المعجبين +المعجز +المعجزات +المعجزة +المعجم +المعجمات +المعجمي +المعجمية +المعجَبة +المعدات +المعدة +المعدل +المعدلات +المعدلة +المعدن +المعدنية +المعدودين +المعدي +المعدية +المعدّة +المعدّل +المعدَّل +المعدَّلات +المعذب +المعرس +المعرض +المعرضة +المعرفة +المعرفي +المعرفية +المعركة +المعروض +المعروضات +المعروضة +المعروف +المعروفة +المعروفين +المعروقة +المعري +المعرّض +المعرّضون +المعرّي +المعرَّضة +المعز +المعزوفة +المعزولة +المعزين +المعسكر +المعسكرات +المعسول +المعشر +المعشوشبة +المعشوقة +المعصرة +المعصم +المعصوب +المعصية +المعضلة +المعطاة +المعطر +المعطشة +المعطوبة +المعطي +المعطيات +المعظم +المعـدّلة +المعـروف +المعقاف +المعقد +المعقدة +المعقل +المعقم +المعقمات +المعقوف +المعقول +المعقولة +المعقّدة +المعقّمة +المعكوسة +المعلب +المعلبات +المعلق +المعلقات +المعلقة +المعلقين +المعلم +المعلمات +المعلمة +المعلمون +المعلمين +المعلن +المعلنة +المعلوف +المعلوفية +المعلول +المعلومات +المعلوماتي +المعلوماتية +المعلومة +المعلّم +المعلَّقة +المعمار +المعمارى +المعماري +المعمارية +المعماريون +المعماريين +المعمد +المعمدانية +المعمر +المعمعة +المعمقة +المعمل +المعملي +المعممة +المعمور +المعمورة +المعمول +المعمّرة +المعمّقة +المعنوي +المعنوية +المعنى +المعني +المعنية +المعنيون +المعنيين +المعهد +المعهود +المعهودة +المعوزين +المعوق +المعوقات +المعوقون +المعوقين +المعول +المعولي +المعونات +المعونة +المعوية +المعوّقات +المعوَّلُ +المعيار +المعياران +المعياري +المعيارية +المعيبة +المعيش +المعيشة +المعيشية +المعين +المعيّن +المـــتحدة +المفاتن +المفاتيح +المفاجآت +المفاجأة +المفاجئ +المفاجئة +المفاجىء +المفاجيء +المفارش +المفارقات +المفارقة +المفاسد +المفاصل +المفاعل +المفاعلات +المفاهيم +المفاهيمية +المفاوضات +المفتئتين +المفتاح +المفترس +المفترسة +المفترسين +المفترض +المفترضة +المفترضين +المفتش +المفتشون +المفتشين +المفتعل +المفتقد +المفتوح +المفتوحة +المفجر +المفجعة +المفخور +المفدى +المفرح +المفرخة +المفردات +المفردة +المفرزات +المفرط +المفرطة +المفرطين +المفرقعات +المفروش +المفروشات +المفروشة +المفروض +المفروضة +المفروم +المفزع +المفزعات +المفزعة +المفسدين +المفسر +المفسرين +المفصلة +المفصلي +المفصلية +المفضل +المفضلة +المفضَّل +المفعم +المفعمة +المفعول +المفعولية +المفـقود +المفقود +المفقودات +المفقودة +المفقودين +المفكر +المفكرة +المفكرون +المفكرين +المفهرسين +المفهوم +المفهومين +المفوضية +المفيد +المفيدة +المقابر +المقابض +المقابل +المقابلات +المقابلة +المقاتل +المقاتلين +المقادير +المقاربة +المقارن +المقارنات +المقارنة +المقاريب +المقاصد +المقاطع +المقاطعات +المقاطعة +المقاعد +المقال +المقالات +المقالب +المقالة +المقالح +المقام +المقامات +المقامة +المقامين +المقاهي +المقاولات +المقاومة +المقاومين +المقايضة +المقاييس +المقبرة +المقبضة +المقبـرة +المقبل +المقبلات +المقبلة +المقبلين +المقبول +المقبولة +المقبولين +المقتبسة +المقتحمة +المقتدر +المقتدرة +المقتربة +المقترح +المقترحات +المقترحة +المقتضب +المقتضيات +المقتطف +المقتنيات +المقددات +المقدر +المقدرة +المقدس +المقدسات +المقدسة +المقدستين +المقدسون +المقدسي +المقدسية +المقدسين +المقدسيون +المقدسيين +المقدم +المقدمات +المقدمة +المقدوني +المقدونيين +المقدّس +المقدّمة +المقدَّم +المقدِّم +المقر +المقرئين +المقراب +المقربون +المقربين +المقرر +المقررة +المقرض +المقرنات +المقروءات +المقرون +المقريزي +المقريزية +المقرّبين +المقرّرات +المقزز +المقسم +المقسوم +المقصود +المقصودة +المقصورة +المقطع +المقطعة +المقطعي +المقطم +المقطوع +المقطوعات +المقطوعة +المقعد +المقعدية +المقفر +المقفع +المقفل +المقل +المقلاة +المقلد +المقلدة +المقلدين +المقلق +المقلوبة +المقلية +المقليَّة +المقلّدين +المقنع +المقنعة +المقنن +المقهور +المقهورة +المقهى +المقود +المقولات +المقولة +المقومات +المقوي +المقوية +المقوّى +المقياس +المقيتة +المقيدة +المقيل +المقيم +المقيمة +المقيمون +المقيمين +المكائن +المكاتب +المكاتبات +المكارم +المكاشفة +المكافآت +المكافأة +المكافحة +المكالمات +المكان +المكانة +المكاني +المكانية +المكاوي +المكبر +المكبوتة +المكتب +المكتبات +المكتبة +المكتبية +المكتبيون +المكتبيين +المكتسب +المكتسبات +المكتسبة +المكتشفة +المكتشفون +المكتشَف +المكتظ +المكتظة +المكتفي +المكتنزة +المكتوب +المكتوبة +المكتَشَف +المكثف +المكثّفة +المكثَّف +المكر +المكرسة +المكرسين +المكرمة +المكروه +المكسوة +المكسيك +المكسيكي +المكشوف +المكشوفة +المكعبات +المكفت +المكفهر +المكفهرة +المكفوف +المكفوفين +المكلف +المكلفة +المكلفين +المكلومة +المكملات +المكملة +المكننة +المكوث +المكوك +المكون +المكونات +المكونة +المكوّنة +المكي +المكياج +المكية +المكيفات +المكين +المكينة +المكيين +المكيّف +الملئ +الملا +الملائكة +الملائم +الملائمة +الملابس +الملابسات +الملاح +الملاحة +الملاحظ +الملاحظات +الملاحظة +الملاحقة +الملاحم +الملاحون +الملاحية +الملاذ +الملاريا +الملازم +الملازمة +الملازمين +الملاعب +الملاعين +الملاك +الملامح +الملامسة +الملاهي +الملاىين +الملايين +الملاّح +الملاّحين +الملبس +الملة +الملتئمة +الملتاع +الملتبسة +الملتحق +الملتحقين +الملتحمة +الملتحي +الملتزم +الملتزمة +الملتزمين +الملتصق +الملتصقون +الملتقى +الملتقي +الملتقيات +الملتهب +الملتهبة +الملجأ +الملح +الملحد +الملحدين +الملحق +الملحقة +الملحمة +الملحمي +الملحن +الملحوظ +الملحوظة +الملحون +الملحي +الملحّة +الملحَّة +الملزم +الملزمة +الملساء +الملطخ +الملطخة +الملعب +الملف +الملفات +الملفقة +الملفوف +الملفّح +الملقاة +الملقب +الملقبة +الملقح +الملقم +الملقى +الملك +الملكات +الملكانية +الملكة +الملكي +الملكية +الملكين +الملكَ +الملكُ +الملل +الملليمتر +الملمح +الملمس +الملموس +الملموسة +الملهوف +الملهوفين +الملوث +الملوثات +الملوثة +الملوحة +الملوك +الملوكِ +الملون +الملونة +الملونتين +الملوّث +الملوّثة +الملوّن +الملوّنة +الملوَّث +الملوِّثات +المليء +المليئة +المليار +المليارات +الملياري +الملية +المليشيات +المليون +المليونى +المليوني +المليونين +المماثلة +الممارس +الممارسات +الممارسة +المماكبات +الممالك +المماليك +الممايزة +الممتاز +الممتازة +الممتحنين +الممتد +الممتدة +الممتدتان +الممتزج +الممتص +الممتطون +الممتطين +الممتع +الممتعة +الممتلئة +الممتلكات +الممثل +الممثلة +الممثلون +الممثليات +الممثلين +الممدة +الممدد +الممر +الممرات +الممرض +الممرضات +الممرضة +الممرَّات +الممزق +الممسوحَين +الممضة +الممكن +الممكنات +الممكنة +الممل +المملة +المملحة +المملكة +المملكةالعربية +المملوءة +المملوك +المملوكة +المملوكي +الممنوحة +الممنوحـة +الممنوعات +الممهدة +الممول +المميت +المميتة +المميز +المميزات +المميزة +المميّزة +المميِّزة +المنابر +المنابع +المناجم +المناحل +المناخ +المناخات +المناخلية +المناخية +المنادون +المنادي +المنادية +المنارة +المنازعات +المنازل +المناسب +المناسبات +المناسباتِ +المناسبة +المناسترلى +المناسك +المناشط +المناشف +المناصب +المناصر +المناصرة +المناضل +المناضلة +المناضلون +المناضلين +المناطـق +المناطق +المناطيد +المناظر +المناظرات +المناعات +المناعة +المناعي +المناعية +المنافذ +المنافس +المنافسات +المنافسة +المنافسون +المنافع +المنافي +المناقب +المناقش +المناقشات +المناقشة +المنال +المنام +المنامة +المنامية +المناهج +المناهض +المناهضة +المناوئة +المناوئين +المناورة +المنبثقة +المنبر +المنبسط +المنبع +المنبعث +المنبعثة +المنبه +المنبهات +المنبوذة +المنبوذين +المنة +المنتأى +المنتج +المنتجات +المنتجة +المنتجع +المنتجعات +المنتجين +المنتخبات +المنتخبة +المنتدب +المنتدى +المنتديات +المنتزه +المنتزهات +المنتسبين +المنتشر +المنتشرة +المنتشية +المنتصر +المنتصرين +المنتظر +المنتظرات +المنتظرة +المنتظرين +المنتظم +المنتظمين +المنتفخ +المنتفعين +المنتقاة +المنتقلة +المنتمين +المنتهي +المنتوج +المنتوجات +المنثور +المنثورة +المنجد +المنجزات +المنجي +المنح +المنحة +المنحدر +المنحدرات +المنحدرة +المنحرف +المنحلة +المنحنى +المنحني +المنحنية +المنحوتات +المنحى +المنخفض +المنخفضات +المنخفضة +المنخورة +المندب +المندد +المنددة +المندفع +المندلعة +المندلق +المندمجة +المندوب +المندوبين +المنديل +المنذرة +المنزل +المنزلة +المنزلقات +المنزلي +المنزلية +المنزليةعلى +المنزليّ +المنزهة +المنسق +المنسوب +المنسوجات +المنسوجة +المنسية +المنسيين +المنشآت +المنشأ +المنشأة +المنشد +المنشدين +المنشفة +المنشق +المنشود +المنشودة +المنشودين +المنشور +المنشورات +المنشورة +المنشية +المنشِّطة +المنصب +المنصة +المنصتة +المنصرف +المنصرم +المنصرين +المنصفة +المنصوب +المنصور +المنصوري +المنصَّة +المنضبط +المنضبطة +المنضج +المنضوية +المنطبعتان +المنطق +المنطقة +المنطقتين +المنطقي +المنطقية +المنطلق +المنطلقات +المنطلقة +المنطوق +المنطوقة +المنطوي +المنطوية +المنظار +المنظر +المنظرين +المنظف +المنظفات +المنظم +المنظمات +المنظمة +المنظور +المنظورة +المنظومة +المنظّم +المنظِّفات +المنظِّمة +المنع +المنعة +المنعزلة +المنعش +المنعطف +المنعقد +المنعقدة +المنعكس +المنعكسة +المنفحة +المنفذة +المنفرد +المنفردة +المنفصل +المنفصلة +المنفعة +المنفقة +المنفلت +المنفلتة +المنفلوطي +المنفى +المنفي +المنفيون +المنقار +المنقبضة +المنقبين +المنقذ +المنقرضة +المنقلب +المنقورة +المنقوش +المنقوشة +المنقوص +المنقوصة +المنقول +المنقولات +المنقولة +المنقولين +المنكبين +المنكر +المنكرين +المنكوب +المنكوبة +المنكوبين +المنمق +المنمنمات +المنمنمة +المنهاج +المنهار +المنهارة +المنهج +المنهجي +المنهجية +المنهك +المنهكة +المنهمر +المنوال +المنوالية +المنورة +المنوطة +المنوعة +المنوفية +المنولوجات +المنومات +المنومة +المنون +المنوي +المنوية +المنوّرة +المنوّمة +المني +المنيا +المنية +المنيع +المنيعة +المنيف +المنيّة +المنّة +المها +المهاة +المهاتما +المهاجر +المهاجرة +المهاجرون +المهاجرين +المهاجمين +المهادنة +المهارات +المهارة +المهاري +المهام +المهبطية +المهبلي +المهتاج +المهتدي +المهترأة +المهترىء +المهتم +المهتمة +المهتمون +المهتمين +المهجر +المهجري +المهجورة +المهد +المهدئات +المهدئة +المهداة +المهدد +المهددة +المهدمة +المهدور +المهدورة +المهدومة +المهدي +المهدية +المهذب +المهرب +المهرة +المهرجان +المهرجانات +المهرجين +المهرطق +المهرطقون +المهرطقين +المهري +المهزوزة +المهسهس +المهضومة +المهلك +المهلكة +المهم +المهمات +المهماز +المهمازيون +المهمة +المهمشين +المهملات +المهملة +المهملين +المهمّ +المهمّة +المهن +المهنة +المهندس +المهندسة +المهندسون +المهندسين +المهني +المهنية +المهور +المهولة +المهيأة +المهيئة +المهيب +المهيري +المهيمن +المهيمنة +المهيمنون +المهيمنين +المهين +الموئل +الموا +الموائد +الموائل +المواتية +المواجد +المواجه +المواجهات +المواجهة +المواد +المواربة +الموارد +الموازنة +الموازي +المواسم +المواسير +المواشي +المواصفات +المواصلات +المواصلة +المواضع +المواضيع +المواطن +المواطنات +المواطنة +المواطنون +المواطنية +المواطنين +المواعظ +المواعيد +الموافق +الموافقة +المواقع +المواقف +المواقيت +المواكب +الموال +الموالد +الموالية +المواليد +الموانئ +المواهب +الموبؤة +الموبوء +الموبوءة +الموت +الموتى +الموتيف +الموتيفات +الموثقة +الموثوقة +الموج +الموجات +الموجب +الموجبة +الموجة +الموجز +الموجع +الموجه +الموجهة +الموجود +الموجودات +الموجودة +الموجودين +الموجي +الموجية +الموجيتو +الموجِ +الموجّه +الموجّهة +الموحدة +الموحدون +الموحدين +الموحش +الموحولة +الموحية +الموحّدة +المودة +المودودي +المودوي +الموديل +المورثات +المورثة +المورثية +المورقة +الموروث +الموروثات +الموروثة +الموريا +الموريكينري +الموزعة +الموساد +الموسم +الموسمي +الموسمية +الموسنيور +الموسوعات +الموسوعة +الموسوعي +الموسوم +الموسومة +الموسى +الموسيقا +الموسيقار +الموسيقــــى +الموسيقى +الموسيقي +الموسيقية +الموسيقيين +الموشاة +الموشح +الموشومة +الموصدة +الموصل +الموصلة +الموصلي +الموصوفة +الموصول +الموصى +الموصّاة +الموضات +الموضة +الموضع +الموضعة +الموضعي +الموضعية +الموضوع +الموضوعات +الموضوعة +الموضوعي +الموضوعية +الموطأ +الموطن +الموطِّدة +الموظف +الموظفة +الموظفون +الموظفين +الموظِّف +الموعد +الموعود +الموعودة +الموفد +الموفدين +الموفق +الموفين +الموقد +الموقع +الموقعة +الموقف +الموقفين +الموقوتة +الموكب +الموكلة +الموكولة +المول +المولد +المولدة +المولعين +المولود +المولودون +المولى +المومياء +المومياوات +المومياوين +المونولوجست +المونولوجي +الموهبة +الموهوب +الموهوبون +الموهوبين +المويجات +المياة +الميادين +المياه +المية +الميت +الميتافيزيقي +الميتة +الميثان +الميثانول +الميثانولي +الميثايل +الميثايلين +الميداليات +الميدالية +الميدان +الميداني +الميدانية +الميدي +الميديا +الميراث +الميراني +الميرمية +الميز +الميزاب +الميزات +الميزان +الميزانيات +الميزانية +الميزة +الميسرة +الميعاد +الميكادو +الميكانيكا +الميكانيكي +الميكانيكية +الميكانيكيّ +الميكرو +الميكروب +الميكروبات +الميكروسكوب +الميكروسكوبي +الميكروسكوبية +الميل +الميلاد +الميلادي +الميلادية +الميلاديين +الميلانات +الميلانين +الميلودراما +الميمني +الميناء +الميوزي +الميوسيني +المَتاهة +المَرَاح +المَيز +المُؤخّرة +المُبكِّر +المُحال +المُختَبَر +المُكتظَّة +المُهدى +الن +النأى +النائب +النائحات +النائحة +النائم +النائمات +النائمة +النائمون +النائمين +النائية +النابذات +النابذة +النابض +النابضة +النابع +النابعة +النابهين +النابودة +النابية +الناتئة +الناتج +الناتجة +الناجح +الناجحة +الناجحين +الناجرا +الناجزة +الناجع +الناجعة +الناجم +الناجمة +الناجون +الناجين +الناحل +الناحية +الناحيتين +الناخبين +النادر +النادرة +النادل +النادلات +النادى +النادي +النار +النارجيل +الناري +النارية +النازحون +النازحين +النازفة +النازل +النازي +النازية +الناس +الناسَ +الناسُ +الناشئ +الناشئة +الناشبة +الناشر +الناشرات +الناشرون +الناشرين +الناشطات +الناشطة +الناشطين +الناشف +الناصر +الناصرة +الناصري +الناصرية +الناصع +الناضبة +الناضجة +الناضجين +الناطق +الناطقة +الناطقون +الناطقين +الناظر +الناظرة +الناظرين +الناعم +الناعمة +الناعمتان +الناعمتين +النافذ +النافذة +النافع +النافعة +الناقة +الناقد +الناقدة +الناقدين +الناقص +الناقصة +الناقل +الناقلة +النامي +النامية +النانو +النانوبيوتك +النانوتوي +النانونبيوتك +النانوية +الناهض +الناهضة +الناي +النبأ +النبات +النباتات +النباتى +النباتي +النباتية +النباتين +النبتة +النبرة +النبض +النبضات +النبطية +النبع +النبل +النبلة +النبهان +النبهاني +النبوءات +النبوءة +النبوة +النبوى +النبوي +النبوية +النبي +النبيل +النبيلة +النبيين +النتائج +النتاج +النتاسق +النتفس +النتن +النتنة +النتوءات +النتيجة +النثار +النثر +النثري +النثرية +النجا +النجابة +النجاة +النجاح +النجاحات +النجار +النجارة +النجارين +النجديّة +النجلاوان +النجم +النجمات +النجمية +النجوم +النجومية +النجيبة +النجيع +النحاس +النحاسية +النحاسين +النحافة +النحال +النحالون +النحالين +النحت +النحر +النحس +النحـو +النحل +النحلات +النحلاوي +النحلة +النحو +النحوية +النحيفة +النحيل +النحيلة +النخاس +النخاسة +النخاع +النخب +النخبة +النخل +النخلة +النخوة +النخيل +الند +النداء +الندب +الندبات +الندبة +الندرة +الندل +الندم +الندوات +الندوة +الندوي +الندى +الندية +النديم +النديّة +النذر +النذري +النذور +النرجسية +النرجيلة +النرد +النرويج +النرويجي +النرويجية +النزاع +النزاعات +النزاهة +النزر +النزعة +النزف +النزقة +النزل +النزلاء +النزهة +النزوح +النزوع +النزوف +النزول +النسا +النساء +النساءَ +النسائم +النسائي +النسائية +النساجين +النساطرة +النساك +النسانيس +النسب +النسبة +النسبي +النسبية +النسج +النسخ +النسخة +النسر +النسق +النسل +النسمات +النسوة +النسوي +النسويات +النسوية +النسويين +النسيء +النسيان +النسيج +النسيجي +النسيم +النسيمات +النشأة +النشا +النشاء +النشادرية +النشاط +النشاطات +النشر +النشرات +النشرة +النشط +النشطة +النشطين +النشـيط +النشوء +النشوان +النشوة +النشويات +النشيد +النص +النصائح +النصاب +النصارى +النصال +النصب +النصح +النصر +النصرانية +النصف +النصفي +النصوص +النصية +النصيحة +النصيّة +النصّ +النضال +النضالات +النضالي +النضالية +النضج +النضرة +النضوج +النضوية +النطاح +النطاق +النطح +النطق +النظائر +النظارات +النظارة +النظافة +النظام +النظامي +النظامية +النظامين +النظر +النظرات +النظرة +النظري +النظريات +النظرية +النظم +النظير +النظيرية +النظيف +النظيفة +النعاج +النعاس +النعام +النعرات +النعم +النعمان +النعماني +النعمة +النعناع +النعوت +النعيم +النعيمى +النعيمي +النفائس +النفاثة +النفاخ +النفاذ +النفايات +النفخية +النفر +النفري +النفس +النفساني +النفسبدني +النفسي +النفسية +النفسيين +النفط +النفطى +النفطي +النفطية +النفع +النفعية +النفق +النفقات +النفقة +النفوذ +النفوس +النفي +النفيس +النفيسة +النقائص +النقائض +النقاب +النقابات +النقابة +النقابون +النقابية +النقاد +النقاش +النقاشات +النقاشية +النقاط +النقال +النقالة +النقاهة +النقب +النقد +النقدان +النقدي +النقدية +النقديتين +النقراشي +النقرة +النقش +النقشبندي +النقشبندية +النقشة +النقص +النقطة +النقل +النقلات +النقلة +النقليات +النقمة +النقود +النقوش +النقي +النقية +النقيض +النقيضين +النقّاد +النكات +النكبات +النكبة +النكتة +النكس +النكسة +النكفية +النكهة +النكوتين +النكوص +النمائية +النماذج +النمر +النمسا +النمط +النمطان +النمطية +النمطين +النمل +النملة +النملية +النمو +النموات +النموذج +النموذجي +النموذجية +النموذجين +النمور +النميري +النميمة +النهائي +النهائية +النهار +النهارات +النهامون +النهايات +النهاية +النهب +النهج +النهدين +النهر +النهرية +النهرين +النهرُ +النهضة +النهضوي +النهضوية +النهم +النهمة +النهود +النهوض +النهي +النوء +النواب +النواة +النواحي +النوادر +النوادي +النوارس +النوافذ +النواقل +النوايا +النوب +النوبات +النوبة +النوبيات +النوت +النوتة +النور +النورس +النورمان +النوري +النورين +النوطات +النوع +النوعان +النوعي +النوعيات +النوعية +النوعين +النوفرة +النوق +النوم +النون +النووى +النووي +النووية +النوويد +النوويين +النويهي +النيابة +النيابي +النياندرتالي +النيباليات +النية +النيترات +النيتروجليسرين +النيتروجين +النيتروجينية +النيتريك +النيجر +النيجيريين +النيران +النيفر +النيكل +النيل +النيلية +النيوترونات +النيوتوني +النيوتونية +النيوليتي +النيون +النيوي +النيّة +النيّر +النَفَس +النّاس +النّسق +النّفس +النَّاس +النَّاسُ +النَّبيل +النَّجيبة +النَّحل +النَّدى +النَّفس +الهائل +الهائلة +الهائمات +الهابطة +الهاتف +الهاتفية +الهاجاناة +الهاجس +الهاجعة +الهادئ +الهادئة +الهادر +الهادرة +الهادف +الهادفة +الهادي +الهاديء +الهاربات +الهاربة +الهاربون +الهارموني +الهارمونيكا +الهاشمي +الهاشميات +الهاشمية +الهاضمة +الهافية +الهالة +الهالك +الهام +الهامات +الهامة +الهامدة +الهامش +الهامشي +الهامشية +الهانئون +الهانئين +الهاون +الهبات +الهبة +الهبوط +الهتمي +الهجاء +الهجائية +الهجرات +الهجرة +الهجري +الهجمات +الهجمة +الهجن +الهجوم +الهجين +الهدا +الهدايا +الهداية +الهدف +الهدفين +الهدم +الهدنة +الهدوء +الهدى +الهدي +الهدية +الهدّابي +الهراطقة +الهرب +الهرج +الهرطقات +الهرطقة +الهرم +الهرمة +الهرمون +الهرمونات +الهرموني +الهرمونية +الهروب +الهرولة +الهري +الهزائم +الهزات +الهزاز +الهزة +الهزلية +الهزيع +الهزيلة +الهزيمة +الهستيريا +الهشاشة +الهشة +الهشيم +الهضاب +الهضبة +الهضم +الهضمى +الهضمي +الهضمية +الهكتار +الهكسانول +الهكسوس +الهلا +الهلاك +الهلال +الهلام +الهلامي +الهلاميات +الهلامية +الهلفوت +الهليكوبتر +الهم +الهمالايا +الهمام +الهمبورجر +الهمة +الهمذاني +الهمز +الهمس +الهمم +الهمهمات +الهموم +الهنا +الهناءة +الهنتنجتونية +الهند +الهندسة +الهندسي +الهندسية +الهندوس +الهندي +الهندية +الهنكرة +الهنود +الهواء +الهوائي +الهوائية +الهوائيتان +الهوائيتين +الهواة +الهواتف +الهواجس +الهوامش +الهوايات +الهواية +الهوة +الهودج +الهورمونات +الهوس +الهوكي +الهول +الهولندي +الهولندية +الهولنديين +الهوليوودي +الهوليوودية +الهوهنشتاوفن +الهوى +الهويات +الهوية +الهويّة +الهوّة +الهي +الهيئات +الهيئة +الهياج +الهيبة +الهيبز +الهيثم +الهيدرازين +الهيدروجين +الهيدروجيني +الهيدروجينية +الهيدروكربونات +الهيدروكربونية +الهيدرولية +الهيراطيقية +الهيروئين +الهيستامين +الهيكل +الهيكلة +الهيكلية +الهيلينستي +الهيلينستية +الهيليني +الهيلينية +الهيمالايا +الهيمنة +الهيموجلوبين +الهِرَم +الو +الوأد +الوئيد +الوا +الواب +الواثق +الواجب +الواجبات +الواجهات +الواجهة +الواجهتين +الواحات +الواحة +الواحد +الواحدة +الواحدي +الواحـد +الواد +الوادي +الوارد +الواردات +الواردة +الوازعة +الواسطة +الواسع +الواسعة +الواسعتين +الواصفون +الواصل +الواصلة +الواصلين +الواضح +الواضحة +الواضع +الواعد +الواعدة +الواعي +الواعية +الوافد +الوافدات +الوافدة +الوافدون +الوافدين +الوافر +الوافرة +الوافي +الوافية +الواقع +الواقعة +الواقعي +الواقعية +الواقف +الواقفة +الواقفين +الواقي +الواقيات +الوالد +الوالدان +الوالدين +الوالديين +الوالي +الواهم +الواهنة +الوباء +الوبائي +الوبائية +الوتر +الوترة +الوتيرة +الوثائق +الوثائقية +الوثنية +الوثي +الوثيق +الوثيقة +الوجازة +الوجبات +الوجبة +الوجد +الوجدان +الوجداني +الوجدانية +الوجدي +الوجه +الوجهات +الوجهان +الوجهة +الوجهتين +الوجهية +الوجهين +الوجود +الوجودي +الوجودية +الوجوه +الوجيب +الوجيز +الوجيهة +الوحدات +الوحدانية +الوحدة +الوحدوي +الوحدوية +الوحش +الوحشة +الوحشي +الوحشية +الوحشين +الوحـدة +الوحل +الوحول +الوحي +الوحيد +الوحيدة +الوحيدون +الوحيدين +الوحيدَ +الوخز +الوخيمة +الود +الودائع +الوداع +الوداعة +الوديان +الودية +الوديع +الوذمة +الوراء +الوراثة +الوراثي +الوراثية +الوراق +الورد +الوردة +الوردية +الورع +الورق +الورقة +الورقي +الورقية +الورك +الوركاء +الوركين +الورم +الورمية +الوروار +الورود +الوريد +الوريدي +الوريدية +الوريقات +الوزارات +الوزارة +الوزاري +الوزان +الوزراء +الوزن +الوزير +الوزيرة +الوسائط +الوسائل +الوسادتان +الوسادتين +الوسامة +الوسط +الوسطى +الوسطي +الوسوسة +الوسيط +الوسيطة +الوسيلة +الوسيم +الوشاحي +الوشى +الوشيك +الوصائية +الوصال +الوصايا +الوصاية +الوصف +الوصفات +الوصفة +الوصل +الوصلات +الوصول +الوصولي +الوصية +الوصيفة +الوضع +الوضعية +الوضوء +الوضوح +الوطأة +الوطن +الوطنى +الوطني +الوطنية +الوطنيين +الوطنيّات +الوطيء +الوظائف +الوظيـفة +الوظيفة +الوظيفي +الوظيفية +الوعاء +الوعائي +الوعائية +الوعاظ +الوعر +الوعرة +الوعظ +الوعكة +الوعود +الوعورة +الوعى +الوعي +الوفا +الوفاء +الوفاة +الوفاض +الوفاق +الوفد +الوفدية +الوفرة +الوفود +الوفي +الوفيات +الوفية +الوقائع +الوقائية +الوقار +الوقاية +الوقت +الوقع +الوقف +الوقفات +الوقفة +الوقفيات +الوقود +الوقودات +الوقودية +الوقور +الوقورة +الوقوع +الوقوف +الوقية +الوكالات +الوكالة +الوكالتان +الوكيل +الولاء +الولاءات +الولاة +الولادات +الولادة +الولادي +الولادية +الولايات +الولاية +الولد +الولدان +الولدين +الولع +الولهان +الولهانة +الولهى +الولوج +الولولة +الولي +الوليد +الوليدة +الوليمة +الومضاني +الونكا +الوهاب +الوهاد +الوهج +الوهلة +الوهم +الوهميين +الوهَّاب +الويب +الويل +الوَهَن +الى +الي +اليأس +الياء +اليائس +اليائسة +اليائسين +اليابان +الياباني +اليابانية +اليابانيون +اليابانيين +اليابس +اليابسة +اليازجي +الياسمين +اليافع +اليافعة +اليافعين +الياقات +الياقوت +اليانع +اليباب +اليباس +اليبوسيون +اليتامى +اليتم +اليتيم +اليتيمة +اليحيا +اليد +اليدوي +اليدوية +اليدين +اليرقات +اليرقة +اليرموك +اليسار +اليساري +اليسارية +اليساريين +اليسر +اليسرى +اليسوعية +اليسير +اليسيرة +اليشع +اليعاقبة +اليعقوبية +اليعيزر +اليفاع +اليقظ +اليقظة +اليقين +اليقينية +اليلاتوتين +اليمام +اليمامة +اليماني +اليمانية +اليمن +اليمنى +اليمني +اليمنية +اليمنيين +اليمين +اليمينية +الينا +الينابيع +الينبوع +اليه +اليها +اليهود +اليهودي +اليهودية +اليوجينية +اليود +اليورانيوم +اليورنكو +اليورهارت +اليوريا +اليوسف +اليوسين +اليولكران +اليوم +اليومى +اليومي +اليوميات +اليومية +اليوميةعن +اليومين +اليونان +اليوناني +اليونانية +اليونانيون +اليونانيين +اليونسكو +اليونسيف +اليونيسكو +اليونيسيف +اليونيني +الَّذِينَ +الْتقطت +الْعِلْمَ +الْمُؤْمِنِينَ +الْمُنْكَرِ +الْيُتْم +ام +اما +اماراتيا +امام +امامه +امامي +امبابي +امتاز +امتحان +امتحانات +امتحاناته +امتد +امتداحهم +امتداد +امتدادا +امتداداتها +امتداداً +امتداده +امتدادها +امتدادًا +امتدت +امتدح +امتدحناها +امتدَّ +امتزج +امتزجت +امتصاص +امتصاصاً +امتصاصه +امتصاصها +امتصته +امتطى +امتلأ +امتلأت +امتلاء +امتلاك +امتلاكه +امتلاكها +امتلك +امتلكت +امتناع +امتنع +امتنعت +امتنعوا +امتهانها +امتياز +امتيازات +امتيازاتها +امتيازاً +امتيازه +امتُهن +امحت +امرأة +امرأتك +امرأته +امرأتي +امرأتين +امرئ +امراضية +امريكياً +امسح +امفوراس +امكانية +امنة +امنحهم +امورا +اميل +ان +انا +اناملي +انبثاق +انبثاقا +انبثاقة +انبثق +انبثقت +انبرت +انبعاث +انبعاثها +انبعثت +انبهار +انبهارهم +انبهاري +انبهروا +انت +انتاب +انتابت +انتابتني +انتابته +انتابني +انتابه +انتاجهما +انتاجي +انتان +انتانية +انتباه +انتباهنا +انتباهه +انتباههم +انتباهي +انتبه +انتبهت +انتبهوا +انتبهي +انتج +انتحار +انتحارية +انتحب +انتحرت +انتخاب +انتخابات +انتخاباتهم +انتخابه +انتخابية +انتخب +انتخبت +انتدب +انتركونتيننتال +انترناشيونال +انتزاع +انتزاعها +انتزع +انتزعت +انتزعها +انتساب +انتسابك +انتسبت +انتسبتُ +انتشار +انتشارا +انتشاراً +انتشارسارس +انتشاره +انتشارها +انتشارًا +انتشال +انتشر +انتشرت +انتشروا +انتشلت +انتشله +انتشى +انتصاب +انتصابه +انتصار +انتصارا +انتصارات +انتصاراته +انتصاره +انتصارها +انتصر +انتصروا +انتظار +انتظارا +انتظاراً +انتظارك +انتظارنا +انتظاره +انتظارها +انتظارهم +انتظاري +انتظارًا +انتظام +انتظاما +انتظامه +انتظامها +انتظر +انتظرت +انتظرني +انتظره +انتظروا +انتظري +انتظريني +انتظم +انتعاش +انتعاشاً +انتعشت +انتفاء +انتفاخ +انتفاضات +انتفاضة +انتفت +انتفخ +انتفض +انتفضت +انتفع +انتقاء +انتقاؤها +انتقائي +انتقائيا +انتقاد +انتقادات +انتقادها +انتقاديا +انتقاص +انتقاصاً +انتقال +انتقاله +انتقالها +انتقالي +انتقالية +انتقام +انتقاما +انتقت +انتقد +انتقدتها +انتقدنا +انتقـال +انتقل +انتقلت +انتقلنا +انتقم +انتقى +انتماء +انتماءات +انتماءاتنا +انتماؤه +انتمائه +انتمائهم +انتمي +انتمينا +انتهاء +انتهاءها +انتهاءً +انتهائكم +انتهائه +انتهائها +انتهائي +انتهازي +انتهازية +انتهاك +انتهاكا +انتهاكاً +انتهاكها +انتهت +انتهز +انتهوا +انتهى +انتهي +انتهيت +انتهيتُ +انتهينا +انثقاب +انجذبت +انجزته +انجلاء +انجلترا +انحاء +انحازت +انحدر +انحدرت +انحراف +انحرافا +انحرافاً +انحرافها +انحرافًا +انحرف +انحسار +انحسارا +انحساراً +انحساره +انحسر +انحشار +انحصر +انحطاط +انحطاطنا +انحفر +انحل +انحناء +انحناءات +انحناءة +انحنت +انحياز +انحيازنا +انحيازه +انخرطت +انخرطتُ +انخرطوا +انخفاض +انخفاضا +انخفاضاً +انخفاضًا +انخفض +انخفضت +انخناقه +اند +اندثار +اندثارها +اندثرت +اندثروا +اندرج +اندريه +اندفاع +اندفاعاته +اندفاعه +اندفاعها +اندفاعهم +اندفع +اندفعت +اندفعنا +اندفعوا +اندلاع +اندلاعها +اندلع +اندلعت +اندماج +اندماجه +اندمج +اندمجت +اندهاشهم +اندهش +اندهشت +انزعاج +انزعج +انزعجوا +انزل +انزلاق +انزوت +انساب +انسان +انسباط +انسجام +انسجاماً +انسجامي +انسحاب +انسحابه +انسحب +انسحقت +انسداد +انسداداً +انسداده +انسقت +انسل +انسلاخ +انسلاخهم +انسلال +انسى +انسيابه +انسيابياً +انشاء +انشاؤها +انشقّتْ +انصب +انصباب +انصبت +انصراف +انصرافه +انصرافهم +انصرافي +انصرف +انصرفت +انصهار +انصهرت +انضم +انضمام +انضمامكم +انضمت +انضممت +انضوائها +انطباعاته +انطباعاً +انطباعك +انطباعي +انطباعية +انطبع +انطبعت +انطبق +انطراحه +انطفأت +انطفاء +انطلاق +انطلاقا +انطلاقاً +انطلاقة +انطلاقتها +انطلاقتي +انطلاقًا +انطلق +انطلقت +انطلقنا +انطلقوا +انطوت +انظافة +انظر +انظري +انظمة +انعتاق +انعتاقه +انعدام +انعدمت +انعزال +انعزالهم +انعطف +انعطفنا +انعقاد +انعقادها +انعقد +انعقدت +انعكاس +انعكاسا +انعكاسات +انعكاساتها +انعكاساً +انعكس +انعكست +انفتاح +انفتاحي +انفتح +انفتحت +انفتحتْ +انفجار +انفجارات +انفجاراتها +انفجاره +انفجارها +انفجاري +انفجر +انفجرت +انفراج +انفراجاً +انفراداته +انفراديا +انفراط +انفرد +انفردت +انفصال +انفصالا +انفصام +انفصل +انفض +انفضاض +انفعال +انفعالات +انفعالاته +انفعالاتي +انفعاله +انفعالي +انفعالية +انفكوا +انفلت +انقاذ +انقباض +انقر +انقراض +انقرض +انقرضت +انقسام +انقسامات +انقساماً +انقسمت +انقسموا +انقضائها +انقضاضه +انقضت +انقضوا +انقضى +انقطاع +انقطاعه +انقطاعها +انقطع +انقطعت +انقلاب +انقلابا +انقلابات +انقلاباً +انقلبت +انكبت +انكبّ +انكبَّ +انكتب +انكسار +انكشافه +انكشف +انكشفت +انكفأت +انكفاء +انكم +انكمش +انما +اننا +انني +انه +انها +انهالت +انهت +انهضي +انهم +انهماك +انهمك +انهن +انهى +انهي +انهيار +انهيارات +انهياره +انهيارها +انهيال +اني +اهتدوا +اهتدى +اهتديت +اهتز +اهتزاز +اهتزازات +اهتزازه +اهتزت +اهتم +اهتمام +اهتماما +اهتمامات +اهتماماتك +اهتماماتنا +اهتماماته +اهتماماتها +اهتماماتهم +اهتماماتي +اهتماماً +اهتمامكم +اهتمامنا +اهتمامه +اهتمامها +اهتمامهم +اهتمامي +اهتمامًا +اهتمت +اهتممت +اهتممتم +اهتموا +اهدأ +اهدئي +اهديه +اهريتش +اهلنه +اهمال +اهمها +اهمية +اهميتها +او +اور +اوربا +اوربينا +اورشاليم +اوستن +اوسلو +اولئك +اولمرت +اوما +اى +اي +ايام +ايان +اياها +اية +ايتان +ايجال +ايران +ايزوب +ايسلندا +ايضا +ايطاليا +ايطالية +ايقاعاتها +ايقظ +اين +اينما +ايها +ايهود +ايودين +اَلْمُسْتَشْفَى +اِسْتِخْدَامها +ب +بآثار +بآثارنا +بآثارها +بآثامه +بآخر +بآداب +بآدابهما +بآراء +بآرائه +بآسيا +بآفات +بآفاق +بآلات +بآلاف +بآلام +بآلة +بآلية +بآن +بآهات +بأبجديات +بأبحاثه +بأبدان +بأبرز +بأبشع +بأبعاد +بأبعاده +بأبناء +بأبنائه +بأبنيتها +بأبها +بأبهى +بأبو +بأبي +بأبيات +بأبياته +بأتلانتا +بأتيلييه +بأثر +بأثمان +بأثواب +بأجزائه +بأجسامنا +بأجسامها +بأجسامهم +بأجمل +بأجنحة +بأجنحته +بأجنحتها +بأجهزة +بأحاديثه +بأحاديثهم +بأحد +بأحداث +بأحداثه +بأحدث +بأحدكم +بأحذية +بأحرف +بأحزان +بأحزانك +بأحزمة +بأحسن +بأحشاء +بأحكام +بأحلام +بأحوال +بأخبار +بأخته +بأخذ +بأخرى +بأخلاق +بأخلاقيات +بأخواتها +بأخوة +بأخي +بأداء +بأدائها +بأدب +بأدبية +بأدوات +بأدواتها +بأدوارها +بأدونيس +بأدوية +بأديان +بأذن +بأذني +بأذنيه +بأذى +بأربع +بأربعة +بأرشاك +بأرض +بأرضيته +بأرفف +بأرقي +بأرواحنا +بأريج +بأريحية +بأزمات +بأزمة +بأس +بأسئلة +بأسئلته +بأسئلتها +بأسئلتي +بأسا +بأسابيع +بأساتذة +بأساسياته +بأساليب +بأساليبها +بأسباب +بأسبابها +بأسبوعين +بأستاذه +بأستوكهولم +بأسد +بأسرار +بأسراره +بأسرارها +بأسرارهم +بأسرته +بأسرع +بأسره +بأسرها +بأسطح +بأسطوانات +بأسطورة +بأسعار +بأسعاره +بأسعارها +بأسلحة +بأسلحته +بأسلوب +بأسلوبه +بأسلوبها +بأسلوبين +بأسماء +بأسمائها +بأسمى +بأسنانهم +بأسهل +بأسهم +بأسواق +بأسى +بأشجار +بأشد +بأشعارها +بأشعة +بأشق +بأشكال +بأشكالها +بأشهى +بأشياء +بأصابع +بأصابعها +بأصابعي +بأصبعه +بأصحاب +بأصحابه +بأصدقاء +بأصدقائه +بأصناف +بأصوات +بأصول +بأصولها +بأضرار +بأضراره +بأضعاف +بأطراف +بأطروحة +بأطوار +بأطوال +بأطياف +بأعجوبة +بأعداد +بأعراض +بأعصاب +بأعضائه +بأعلام +بأعلى +بأعمار +بأعماق +بأعمال +بأعماله +بأعمدة +بأعوام +بأعيادهم +بأعينهم +بأفراحها +بأفرازات +بأفريقيا +بأفضل +بأفعالنا +بأفكار +بأفكاره +بأفكارهم +بأفواههم +بأقاربها +بأقدار +بأقدامهم +بأقدامي +بأقرب +بأقصاب +بأقصى +بأقل +بأقلام +بأقلمة +بأكاديمية +بأكبر +بأكثر +بأكداس +بأكسدة +بأكسفورد +بأكمله +بأكملها +بأكوام +بأكياس +بألا +بألاعيب +بألاَّ +بألحان +بألحانه +بألعاب +بألعابه +بألعابها +بألعابهم +بألفي +بألم +بألمانيا +بألواح +بألوان +بألوانه +بألوانها +بألواني +بألياف +بأم +بأماكن +بأمان +بأمانة +بأمتار +بأمتها +بأمر +بأمراض +بأمره +بأمرها +بأمريكا +بأمرين +بأمطارها +بأمكا +بأمل +بأممية +بأمن +بأمه +بأمها +بأمواج +بأمور +بأمي +بأمير +بأمّته +بأن +بأنسابهم +بأنشطة +بأنطاكية +بأنظارها +بأنظمة +بأنــني +بأنفسنا +بأنفسهم +بأنك +بأننا +بأنني +بأنه +بأنها +بأنهم +بأنهما +بأنهن +بأنوار +بأنواع +بأنواعه +بأنواعها +بأنواعهـا +بأنور +بأني +بأنّ +بأهداف +بأهرام +بأهل +بأهله +بأهم +بأهمية +بأهميتها +بأهواء +بأواصر +بأوامر +بأوراد +بأوراق +بأورام +بأوربا +بأوسكار +بأوضح +بأوقات +بأوقاتهم +بأول +بأى +بأي +بأيام +بأيامنا +بأية +بأيد +بأيدى +بأيدي +بأيدينا +بأيديهم +بأيديهما +بأيسر +بؤبؤ +بؤر +بؤرة +بؤرية +بؤس +بؤسا +بؤسها +بإ +بإبداء +بإبداع +بإبداعية +بإبراز +بإبقاء +بإبقائه +بإبقائها +بإتاحة +بإتاحته +بإتاوات +بإتخاذ +بإتقان +بإتلافه +بإجازته +بإجراء +بإجراءات +بإجماع +بإجمالي +بإجهاد +بإحالة +بإحباط +بإحداث +بإحداثها +بإحدى +بإحراقها +بإحصائيات +بإحضار +بإحضارها +بإحكام +بإحيائهم +بإخراج +بإخفاء +بإخلاص +بإخواننا +بإخوانها +بإداراتها +بإدارة +بإدانتها +بإدخال +بإدخالها +بإدخالِ +بإذابة +بإذلال +بإذن +بإرادة +بإرادته +بإرجاعها +بإرسال +بإرشاده +بإزاء +بإزالة +بإزعاج +بإستانبول +بإسرائيل +بإسقاط +بإسقاطاتها +بإسمي +بإسهاب +بإسهال +بإشارات +بإشارة +بإشباع +بإشراف +بإشرافه +بإشفاق +بإصابة +بإصبعه +بإصبعها +بإصدار +بإصدارات +بإصرار +بإضاءة +بإضافة +بإضافتها +بإطار +بإطلاق +بإعادة +بإعادته +بإعاقة +بإعجاب +بإعجابهم +بإعجاز +بإعداد +بإعدادها +بإعدامه +بإعطاء +بإعطائه +بإعلان +بإعمار +بإعياء +بإفراز +بإفراط +بإفريقيا +بإقامة +بإقبال +بإقصاء +بإقليم +بإكسير +بإلحاح +بإلزام +بإلقاء +بإلقائها +بإله +بإليجا +بإمارة +بإمبراطوره +بإمعانٍ +بإمكان +بإمكانك +بإمكاننا +بإمكانها +بإمكانهم +بإمكاني +بإمكانية +بإميلشيل +بإنارة +بإنتاج +بإنتاجي +بإنجاب +بإنجاح +بإنجاحها +بإنجاز +بإنجازه +بإنجلترا +بإنجليزيته +بإنذار +بإنزاله +بإنسان +بإنسانية +بإنشاء +بإنفاقهم +بإنقاذ +بإنكار +بإهانة +بإهدار +بإهلاكه +بإيجاد +بإيجاز +بإيحاءات +بإيذاء +بإيراد +بإيران +بإيصال +بإيعازها +بإيقاع +بإيقاعها +بإيقاف +بإيواء +بئر +بئرا +با +باء +باءت +باأقول +بائتة +بائس +بائسة +بائع +بائعا +بائعاً +بائعة +باب +بابا +باباياناكيس +باباً +بابة +بابتسامة +بابتكار +بابتكاره +بابتلاعها +بابل +بابليون +بابن +بابنته +بابنه +بابه +بابها +بابور +بابوية +بابي +بابين +بابٍ +بات +باتا +باتاً +باتباع +باتباعه +باتت +باتجاه +باتجاهنا +باتجاههما +باتحاد +باتخاذ +باترك +باتريا +باتريس +باتريك +باتساع +باتصالات +باتصاله +باتفاقيات +باتهامات +باتهامها +باتي +باثا +باثاك +باثنى +باجتثاث +باجتذاب +باجترار +باجتهاد +باجر +باحة +باحترام +باحترامها +باحتفال +باحتقار +باحتلال +باحتمال +باحتمالاته +باحتياجاتهم +باحث +باحثا +باحثان +باحثاً +باحثة +باحثون +باحثي +باحثين +باحثًا +باخت +باختباره +باختراع +باختراعه +باختراق +باختصار +باختصاص +باختفاء +باختلاجات +باختلاف +باختلافنا +باختلافها +باختناق +باختيار +باختيارها +باختياري +باخرة +بادئ +بادئا +بادرات +بادرة +بادرت +بادرنا +بادره +بادروا +بادش +بادل +بادلته +بادوا +بادوك +بادىء +بادياً +بادية +باديس +بادٍ +باذخة +باذلة +باذله +باذلين +باذنجان +بار +باراك +باراكس +بارانا +باراي +باراً +باربارة +بارباروسا +باربر +بارت +بارتاجاس +بارتعاشٍ +بارتفاع +بارتلز +بارتليه +بارتوتشيل +بارتون +بارتي +بارتياب +بارتياح +بارحام +بارد +باردة +باردين +باردًا +بارز +بارزا +بارزاً +بارزة +بارزتين +بارزون +بارزين +بارزًا +بارسيمان +بارع +بارعا +بارعات +بارعاً +بارعة +بارعًا +بارقة +بارك +باركر +باركي +باروح +بارود +بارون +باريس +باريسية +باريمور +بارين +باريه +باز +بازدحام +بازدهار +بازدهاره +بازدياد +بازية +بازيل +باس +باستئجار +باستئصال +باستئناف +باستا +باستباب +باستبدال +باستثارة +باستثمار +باستثمارها +باستثناء +باستجلاء +باستحسان +باستحضار +باستحقاقاتها +باستخدام +باستخدامات +باستخداماته +باستخدامها +باستخراج +باستخفاف +باستخلاص +باستدعائنا +باسترداد +باستشراف +باستشهاد +باستصلاح +باستطاعة +باستطاعته +باستطاعتها +باستطاعتهم +باستطاعتي +باستطلاع +باستعادة +باستعارات +باستعراض +باستعمال +باستعمالها +باستقالتها +باستقالتي +باستقبال +باستقطاع +باستقلال +باستكمالها +باستلام +باستماتة +باستمرار +باستمراره +باستنشاق +باستهتارك +باستهلاك +باستوكهولم +باستير +باستيراد +باستيطانات +باسر +باسـتمرار +باسكندرونة +باسم +باسما +باسمائهم +باسماً +باسمك +باسمنا +باسمه +باسمها +باسمهم +باسمي +باسيلوس +باسيو +باشا +باشتراكيتها +باشر +باشراقات +باشمئزاز +باصابتهم +باصدقي +باصطحاب +باصقة +باضطراب +باضطرابات +باطراد +باطلا +باطلاق +باطن +باطنها +باع +باعة +باعت +باعتبار +باعتبارك +باعتباره +باعتبارها +باعتبارهم +باعتبارهما +باعتباري +باعتراف +باعتزاز +باعتزال +باعتقال +باعتقالها +باعتماد +باعتماده +باعتمادها +باعته +باعث +باعثة +باعوا +بافاريا +بافتتانه +بافتراض +بافتقادها +بافقيه +باق +باقادر +باقة +باقتحام +باقتراب +باقتراح +باقتصاديات +باقتضاب +باقتفاء +باقتناء +باقر +باقول +باقى +باقي +باقية +باك +باكتساب +باكتشاف +باكتشافِ +باكتظاظ +باكثير +باكرا +باكراً +باكستان +باكستاني +باكستانية +باكورة +باكورتي +باكوف +باكيات +باكياً +باكيًا +بال +بالآباء +بالآتي +بالآثار +بالآثام +بالآخر +بالآخرين +بالآداب +بالآراء +بالآلاف +بالآلة +بالآلية +بالآمال +بالأب +بالأباخس +بالأبجدية +بالأبحاث +بالأبخرة +بالأبدية +بالأبراج +بالأبصار +بالأبنية +بالأبواب +بالأبيات +بالأبيض +بالأتابك +بالأثاث +بالأجساد +بالأجسام +بالأجنة +بالأجهزة +بالأجيال +بالأحجار +بالأحداث +بالأحرف +بالأحرى +بالأحزان +بالأحقاد +بالأحكام +بالأحلام +بالأحمر +بالأحياء +بالأخبار +بالأخذ +بالأخص +بالأخضر +بالأخلاق +بالأخيرة +بالأداء +بالأدب +بالأدباء +بالأدعية +بالأدلة +بالأدوات +بالأدوار +بالأديان +بالأذرة +بالأذى +بالأذية +بالأراضي +بالأربعين +بالأردن +بالأرز +بالأرض +بالأرق +بالأرمن +بالأزرق +بالأزهر +بالأسئلة +بالأساس +بالأساليب +بالأسباب +بالأسبقية +بالأسبوع +بالأسر +بالأسرة +بالأسطورة +بالأسع +بالأسعار +بالأسف +بالأسلحة +بالأسلوب +بالأسماء +بالأسمنت +بالأسنان +بالأسهم +بالأسوار +بالأسواق +بالأسى +بالأشجار +بالأشعة +بالأشكال +بالأشواك +بالأشياء +بالأصقاع +بالأصل +بالأصنام +بالأضلاع +بالأضواء +بالأطعمة +بالأطفال +بالأظافر +بالأعباء +بالأعداء +بالأعراض +بالأعصاب +بالأعمال +بالأعين +بالأفاعي +بالأفاقية +بالأفاويه +بالأفضل +بالأفضلِ +بالأفعال +بالأفق +بالأفلاج +بالأفلام +بالأقدام +بالأقراط +بالأقران +بالأقصر +بالأقطار +بالأقمار +بالأقنعة +بالأكاديمية +بالأكثر +بالأكثرية +بالأكسجين +بالأكسدة +بالأكل +بالألباني +بالألبوم +بالألفية +بالألم +بالألمان +بالألماني +بالألمانية +بالألوان +بالألياف +بالأماكن +بالأمان +بالأمر +بالأمراض +بالأمريكيين +بالأمس +بالأمشاج +بالأمطار +بالأمعاء +بالأمل +بالأملاح +بالأمم +بالأمن +بالأمواج +بالأمور +بالأمير +بالأميرات +بالأنا +بالأناشيد +بالأناناس +بالأنبياء +بالأندلس +بالأنشطة +بالأنفلونزا +بالأنماط +بالأنواع +بالأوتار +بالأوحال +بالأوراق +بالأوربيين +بالأوضاع +بالأوقات +بالأوكسجين +بالإبحار +بالإبداع +بالإبرة +بالإبصار +بالإثارة +بالإجابة +بالإجماع +بالإحاطة +بالإحباط +بالإحساس +بالإخاء +بالإختناق +بالإدراك +بالإذعان +بالإرث +بالإرشادات +بالإرهاب +بالإرهاق +بالإستزادة +بالإستشفاء +بالإسكندرية +بالإسلام +بالإسهال +بالإشارة +بالإشاعات +بالإشعاع +بالإشعاعات +بالإشكاليات +بالإصدار +بالإضاءة +بالإضافة +بالإضافةإلى +بالإطار +بالإطلاع +بالإطلالة +بالإعاقة +بالإعجاب +بالإعداد +بالإعدام +بالإعراض +بالإعلام +بالإعلان +بالإفراج +بالإفراط +بالإقامة +بالإقلاع +بالإقليم +بالإلحاح +بالإمارات +بالإمام +بالإمعان +بالإمكان +بالإنتاج +بالإنترنت +بالإنجازات +بالإنجليزية +بالإنجيل +بالإنزيمات +بالإنسان +بالإنسانية +بالإنعام +بالإهانة +بالإهداء +بالإهدار +بالإهمال +بالإيجاب +بالإيدز +بالإيقاع +بالإيمان +بالابتسام +بالابتعاد +بالابتلاع +بالاتجاه +بالاتجاهات +بالاتحاد +بالاتصال +بالاتفاق +بالاثنين +بالاجتهاد +بالاحبال +بالاحترام +بالاحتفاء +بالاحتفاظ +بالاحتفال +بالاحتفالية +بالاحتلال +بالاحرى +بالاختبارات +بالاختزال +بالاختصاصات +بالاختلاج +بالاختلاجات +بالاختلاسات +بالاختلاف +بالاختلالات +بالاختناق +بالاختيار +بالاخر +بالادخار +بالارتباط +بالارتجال +بالارتفاع +بالارتياح +بالارد +بالاس +بالاستثمار +بالاستحمام +بالاسترخاء +بالاستروجين +بالاستطلاع +بالاستعانة +بالاستعمار +بالاستفادة +بالاستقلال +بالاستلقاء +بالاستماع +بالاستمرار +بالاستنشاق +بالاستيطان +بالاستيقاظ +بالاسم +بالاشتراك +بالاشتمال +بالاضافة +بالاضمحلال +بالاعتبار +بالاعتبارين +بالاعتداء +بالاعتقاد +بالاعتلال +بالاعتماد +بالاعمال +بالافتراق +بالاقتباس +بالاقتداء +بالاقتراب +بالاقتصاد +بالاقتصاص +بالاكتئاب +بالالتحاق +بالالتزام +بالالتصاق +بالالتفات +بالالتهاب +بالامتحان +بالامتلاء +بالامر +بالانتان +بالانتباه +بالانترنت +بالانتشار +بالانتصار +بالانتفاع +بالانتماء +بالانجليزية +بالانحدار +بالانحناء +بالانخراط +بالانخفاض +بالانزواء +بالانسحاب +بالانصاف +بالانصراف +بالانضباط +بالانضمام +بالانطباعية +بالانعكاس +بالانفجار +بالانفصال +بالانفلونزا +بالانقراض +بالانقلاب +بالانكفاء +بالاهتزاز +بالاهتمام +بالاً +بالباب +بالبابوية +بالباص +بالباطل +بالباعة +بالباكستان +بالبامبو +بالبترول +بالبث +بالبثور +بالبحث +بالبحر +بالبحرين +بالبحيرة +بالبدء +بالبدانة +بالبدن +بالبذرة +بالبراءة +بالبرامج +بالبرامية +بالبربرية +بالبرد +بالبرلمان +بالبرنامج +بالبروبليس +بالبروز +بالبريد +بالبريق +بالبساتين +بالبساطة +بالبسملة +بالبشر +بالبشرة +بالبضائع +بالبطن +بالبطولات +بالبطولة +بالبعد +بالبعض +بالبعيد +بالبقاء +بالبكاء +بالبكتيريا +بالبلاد +بالبلد +بالبلدان +بالبلدة +بالبناء +بالبنان +بالبندقية +بالبنزين +بالبنك +بالبنية +بالبنيوية +بالبهجة +بالبهلوان +بالبهلول +بالبوابات +بالبواخر +بالبوح +بالبولب +بالبيئة +بالبيانات +بالبيانو +بالبيت +بالبيرق +بالبيزنطيين +بالبيع +بالبيوض +بالتأريخ +بالتأقلم +بالتأكد +بالتأكيد +بالتأمل +بالتأنث +بالتئام +بالتاريخ +بالتالى +بالتالي +بالتبشير +بالتبعية +بالتبني +بالتتابع +بالتثقيف +بالتجاهل +بالتجديد +بالتجربة +بالتجريب +بالتجريد +بالتجعّدات +بالتجمد +بالتجمع +بالتجوال +بالتجول +بالتحاب +بالتحدث +بالتحديد +بالتحديق +بالتحذير +بالتحرك +بالتحف +بالتحقق +بالتحقيق +بالتحكم +بالتحلل +بالتحليل +بالتحول +بالتحولات +بالتحية +بالتخثر +بالتخطيط +بالتخلص +بالتخلف +بالتخلي +بالتدريب +بالتدريج +بالتدريس +بالتدرّج +بالتدفق +بالتدقيق +بالتدني +بالتدهور +بالتذكّر +بالتراب +بالتراث +بالترام +بالتربة +بالتربية +بالترتيب +بالترجمة +بالترحّم +بالتردد +بالترع +بالترفيه +بالترقّي +بالتركية +بالتركيز +بالتزام +بالتزامات +بالتزاماتها +بالتزلج +بالتزويق +بالتسامح +بالتسامي +بالتساوي +بالتسجيل +بالتسرُّب +بالتسلق +بالتسمم +بالتسوق +بالتشاؤم +بالتشجيع +بالتشخيص +بالتشريع +بالتشريعات +بالتشفي +بالتشويه +بالتصحيح +بالتصفيق +بالتصميم +بالتصوير +بالتصوّف +بالتضخم +بالتطبيق +بالتطلع +بالتطهير +بالتطور +بالتطوير +بالتظاهر +بالتعاون +بالتعب +بالتعبير +بالتعجيل +بالتعددية +بالتعديل +بالتعذيب +بالتعرض +بالتعرف +بالتعصب +بالتعليم +بالتعليمات +بالتعميم +بالتعويض +بالتفاؤل +بالتفاصيل +بالتفاعل +بالتفوق +بالتقانيات +بالتقدم +بالتقدير +بالتقرب +بالتقسيط +بالتقصير +بالتقنيات +بالتقنية +بالتقوى +بالتكثف +بالتكذيب +بالتكنولوجيا +بالتكوينات +بالتلاشي +بالتلاقي +بالتلحين +بالتلوُّث +بالتليفزيون +بالتماثل +بالتمارين +بالتماس +بالتمام +بالتمثيل +بالتمدد +بالتمرد +بالتمردات +بالتمسك +بالتمويل +بالتنازل +بالتناقص +بالتناقضات +بالتنبيه +بالتنسيق +بالتنصت +بالتنصّر +بالتنظير +بالتنقيب +بالتنكس +بالتنمية +بالتنوع +بالتنوير +بالتهاب +بالتهابات +بالتهجير +بالتهديد +بالتهرب +بالتوابيت +بالتوازي +بالتواصل +بالتواضع +بالتواطؤ +بالتوافد +بالتوالد +بالتوتر +بالتوجه +بالتوجيه +بالتوحيد +بالتورط +بالتوقيع +بالتي +بالتيبس +بالثانوية +بالثاني +بالثدييات +بالثروات +بالثروة +بالثقافات +بالثقافة +بالثقافي +بالثقب +بالثقة +بالثقوب +بالثلوج +بالثمن +بالثواني +بالجائزة +بالجاذبية +بالجاروف +بالجامع +بالجامعات +بالجامعة +بالجان +بالجانب +بالجبال +بالجثة +بالجحر +بالجحود +بالجد +بالجدار +بالجديد +بالجذور +بالجرأة +بالجراح +بالجراحة +بالجرح +بالجروح +بالجريدة +بالجزء +بالجزئيات +بالجزائر +بالجزر +بالجزع +بالجزيرة +بالجسم +بالجلد +بالجلدرات +بالجلوس +بالجمال +بالجمرة +بالجمع +بالجمعيات +بالجمعية +بالجملة +بالجمهرة +بالجمهور +بالجمود +بالجميع +بالجنة +بالجنس +بالجنوب +بالجنود +بالجنون +بالجنين +بالجهات +بالجهاد +بالجهاز +بالجهامة +بالجهد +بالجهل +بالجهود +بالجوائز +بالجوانب +بالجودة +بالجوز +بالجوع +بالجولات +بالجوهر +بالجيزة +بالجيش +بالجينات +بالحاجة +بالحادثة +بالحاضر +بالحافلة +بالحال +بالحالة +بالحامض +بالحب +بالحبال +بالحبة +بالحبل +بالحبوب +بالحتم +بالحج +بالحجاب +بالحجاز +بالحجة +بالحجر +بالحجز +بالحجم +بالحد +بالحدود +بالحديث +بالحديد +بالحديقة +بالحذاء +بالحرائر +بالحرارة +بالحراسة +بالحرب +بالحرباء +بالحرج +بالحرص +بالحرف +بالحرفية +بالحركات +بالحركة +بالحروب +بالحروف +بالحرية +بالحزام +بالحزب +بالحس +بالحسابات +بالحشرات +بالحشف +بالحصان +بالحصباء +بالحصول +بالحضارات +بالحضارة +بالحضور +بالحفر +بالحفظ +بالحفل +بالحق +بالحقائق +بالحقوق +بالحقيقة +بالحكم +بالحكمة +بالحل +بالحلق +بالحلي +بالحليب +بالحماسة +بالحماقات +بالحمامات +بالحمامتين +بالحماية +بالحملة +بالحمى +بالحمّى +بالحناء +بالحنق +بالحنين +بالحوسبة +بالحول +بالحياة +بالحيرة +بالحيف +بالحيوان +بالحيوانات +بالحيوية +بالخارج +بالخالدية +بالخبر +بالخبراء +بالخبرة +بالخجل +بالخدر +بالخدمات +بالخرسانة +بالخرقة +بالخرنفش +بالخروج +بالخريج +بالخسائر +بالخشب +بالخصوبة +بالخصوصية +بالخضار +بالخضراوات +بالخضروات +بالخضيري +بالخط +بالخطأ +بالخطة +بالخطر +بالخطط +بالخطوط +بالخفاش +بالخفق +بالخلايا +بالخلق +بالخلود +بالخليج +بالخمر +بالخنجر +بالخواء +بالخوف +بالخيار +بالخيال +بالخيامية +بالخير +بالخيش +بالخيط +بالخيمة +بالخيوط +بالخيول +بالخَـلَف +بالدائري +بالداخل +بالدار +بالدخان +بالدخول +بالدراسات +بالدراسة +بالدرجات +بالدرجة +بالدرس +بالدروع +بالدستور +بالدعاء +بالدعوة +بالدفء +بالدفع +بالدقيق +بالدقيقة +بالدك +بالدكتور +بالدكتورة +بالدلتا +بالدليل +بالدم +بالدماء +بالدمام +بالدموع +بالدناءة +بالدنيا +بالدهشة +بالدوافع +بالدوحة +بالدورقبل +بالدورين +بالدوس +بالدول +بالدولار +بالدولة +بالدونية +بالديانة +بالدير +بالديمقراطية +بالديموتيقية +بالدين +بالديني +بالديون +بالدّعاء +بالذات +بالذرة +بالذكر +بالذكرى +بالذكري +بالذكريات +بالذل +بالذنب +بالذهب +بالذين +بالرأس +بالرأي +بالرؤية +بالرئة +بالرئتين +بالرئيس +بالراحة +بالراحل +بالرافدين +بالرباط +بالربح +بالربع +بالربو +بالرتق +بالرجال +بالرجل +بالرجوع +بالرحلة +بالرحيل +بالرخام +بالرد +بالرذاذ +بالرسائل +بالرسالات +بالرسالة +بالرسل +بالرسو +بالرسوم +بالرصاص +بالرضا +بالرعاية +بالرعب +بالرفاق +بالرفض +بالرقابة +بالرقبة +بالرقة +بالرقص +بالرقم +بالركاكة +بالركعة +بالركون +بالرمال +بالرمز +بالرمل +بالرمو +بالرهبة +بالروابط +بالروافد +بالرواية +بالروح +بالروزنامة +بالروسية +بالروماتيزم +بالرياح +بالريادة +بالرياض +بالريح +بالريشة +بالرُها +بالزاد +بالزاهيات +بالزجاج +بالزراعة +بالزرنيخ +بالزعيم +بالزكاة +بالزمالك +بالزمن +بالزهو +بالزهور +بالزواج +بالزوار +بالزوجين +بالزورق +بالزيارات +بالزيارة +بالزيت +بالسؤال +بالسائحين +بالساحة +بالسادس +بالساعات +بالساعة +بالسالمية +بالسالين +بالسب +بالسبق +بالسجاد +بالسجن +بالسحر +بالسخاء +بالسخرية +بالسذاجة +بالسردين +بالسرطا +بالسرطان +بالسرطانات +بالسرعة +بالسرقة +بالسروج +بالسريع +بالسعادة +بالسعال +بالسعفة +بالسعودية +بالسفارة +بالسفر +بالسفن +بالسكان +بالسكتة +بالسكر +بالسكن +بالسل +بالسلاح +بالسلالات +بالسلة +بالسلطات +بالسلطان +بالسلطة +بالسلم +بالسلوقي +بالسلوكيات +بالسلوم +بالسماح +بالسمك +بالسموم +بالسن +بالسنة +بالسنين +بالسهر +بالسهلة +بالسهولة +بالسوء +بالسواد +بالسودانيين +بالسوس +بالسوط +بالسوق +بالسويس +بالسويك +بالسياحة +بالسياحـة +بالسيارات +بالسيارة +بالسياسة +بالسيرة +بالسيطرة +بالسينما +بالسيوف +بالسيّاب +بالشأن +بالشؤون +بالشاب +بالشاحنات +بالشاطئ +بالشاعرية +بالشاليهات +بالشام +بالشاهد +بالشباب +بالشباك +بالشبكة +بالشبكية +بالشبه +بالشبهة +بالشخصيات +بالشخصية +بالشخير +بالشراء +بالشرائح +بالشرائط +بالشراسة +بالشرح +بالشرف +بالشرق +بالشرقية +بالشركة +بالشروط +بالشظف +بالشعاب +بالشعارات +بالشعب +بالشعر +بالشعراء +بالشعوب +بالشعور +بالشـــراء +بالشفاء +بالشفافية +بالشك +بالشكر +بالشكل +بالشلل +بالشمال +بالشمس +بالشمع +بالشهادات +بالشهادتين +بالشهرة +بالشهيد +بالشواطئ +بالشواهد +بالشوكولاتة +بالشيء +بالشيح +بالشيخ +بالشيخوخة +بالشيطان +بالشيكولاته +بالصابون +بالصانع +بالصبر +بالصحافة +بالصحة +بالصحراء +بالصحف +بالصحيفة +بالصداقة +بالصدام +بالصدر +بالصدف +بالصدفة +بالصدق +بالصراخ +بالصراع +بالصراعات +بالصرع +بالصرف +بالصعود +بالصفاء +بالصلاة +بالصلاحية +بالصلب +بالصلح +بالصلصال +بالصلوات +بالصمت +بالصور +بالصورة +بالصوفي +بالصياح +بالصيدلة +بالصين +بالصّابون +بالضآلة +بالضابط +بالضاحية +بالضبابية +بالضبط +بالضجر +بالضحك +بالضرب +بالضرورة +بالضروري +بالضعفاء +بالضفة +بالضمادات +بالضمان +بالضمير +بالضوء +بالضوابط +بالضياع +بالضيق +بالطائر +بالطائرات +بالطائرة +بالطائف +بالطابع +بالطابق +بالطابوق +بالطالبان +بالطب +بالطبع +بالطبقة +بالطبيب +بالطبيعة +بالطرح +بالطرد +بالطرق +بالطريق +بالطريقة +بالطعام +بالطفلين +بالطفيل +بالطقس +بالطلاب +بالطلب +بالطمأنينة +بالطموح +بالطهارة +بالطو +بالطول +بالطيب +بالطير +بالطيران +بالطين +بالطيور +بالظاهر +بالظاهرة +بالظفر +بالظلام +بالظلم +بالظهران +بالظهور +بالظواهر +بالعائل +بالعائلة +بالعات +بالعاج +بالعادات +بالعار +بالعاصمة +بالعاطفة +بالعالم +بالعالمية +بالعالمين +بالعام +بالعامية +بالعباءة +بالعبادات +بالعباسية +بالعبرية +بالعبقري +بالعبقرية +بالعبودية +بالعبيد +بالعثور +بالعجائز +بالعجب +بالعجز +بالعجمي +بالعدالة +بالعداوة +بالعدل +بالعدو +بالعديد +بالعذوبة +بالعراق +بالعراك +بالعرب +بالعربة +بالعربي +بالعربية +بالعرض +بالعرق +بالعروبة +بالعسل +بالعش +بالعشاء +بالعشرات +بالعصر +بالعصي +بالعصيدة +بالعض +بالعضوية +بالعطاءات +بالعطب +بالعطل +بالعظمة +بالعفو +بالعقاب +بالعقاد +بالعقارب +بالعقاقير +بالعقبات +بالعقديات +بالعقل +بالعقلانية +بالعقلية +بالعقول +بالعقيدة +بالعكس +بالعلاج +بالعلاقات +بالعلامة +بالعلم +بالعلماء +بالعلوم +بالعم +بالعمالة +بالعمر +بالعمق +بالعمل +بالعملاء +بالعملة +بالعمى +بالعناية +بالعنصر +بالعنف +بالعنق +بالعهد +بالعواطف +بالعوالق +بالعوامل +بالعودة +بالعياط +بالعيش +بالعين +بالعيوب +بالعيون +بالـذات +بالفأس +بالفئات +بالفائدة +بالفاتح +بالفاعلين +بالفتح +بالفترة +بالفتق +بالفتيات +بالفحص +بالفحم +بالفحوص +بالفخر +بالفخروالاعتزاز +بالفرادة +بالفرار +بالفراز +بالفراش +بالفرح +بالفرد +بالفرز +بالفرص +بالفرق +بالفرقة +بالفرنج +بالفرنسية +بالفروسية +بالفريسة +بالفسطاط +بالفسلفة +بالفسيفساء +بالفشل +بالفضة +بالفضل +بالفضول +بالفضيحة +بالفطرة +بالفعاليات +بالفعل +بالفقهي +بالفكاهة +بالفكر +بالفكرة +بالفلزَّات +بالفلسفة +بالفلوس +بالفليبين +بالفم +بالفن +بالفنادق +بالفنان +بالفنانين +بالفندق +بالفواخير +بالفوسفور +بالفول +بالفيتامين +بالفيروس +بالفيروسات +بالفيلاريا +بالفيلم +بالقات +بالقادم +بالقار +بالقارة +بالقاع +بالقانون +بالقاهرة +بالقبائل +بالقبة +بالقبض +بالقبلات +بالقبول +بالقتال +بالقتل +بالقداسة +بالقدر +بالقدرة +بالقدس +بالقديس +بالقديم +بالقرآن +بالقراءة +بالقراد +بالقرارات +بالقرب +بالقرحة +بالقرد +بالقرن +بالقرنة +بالقرنية +بالقرود +بالقروض +بالقرية +بالقسوة +بالقصر +بالقصص +بالقصف +بالقصيدة +بالقصيرة +بالقضاء +بالقضايا +بالقضية +بالقطار +بالقطاع +بالقطع +بالقطن +بالقلعة +بالقلق +بالقلم +بالقلي +بالقليل +بالقليلة +بالقماش +بالقمح +بالقنابل +بالقنص +بالقهر +بالقهقهة +بالقهوة +بالقواعد +بالقوانين +بالقوة +بالقول +بالقومي +بالقومية +بالقوى +بالقيادة +بالقياس +بالقيام +بالقيلة +بالقيم +بالقيمة +بالك +بالكآبة +بالكائنات +بالكاتب +بالكاد +بالكارثة +بالكاريبي +بالكامل +بالكاميرا +بالكبار +بالكباري +بالكبت +بالكبريت +بالكبيسة +بالكتاب +بالكتابة +بالكتابِ +بالكتب +بالكثير +بالكثيرين +بالكحول +بالكذب +بالكرباج +بالكرة +بالكرخ +بالكرم +بالكرنك +بالكروان +بالكسل +بالكشف +بالكعبة +بالكفاءة +بالكلام +بالكلس +بالكلمات +بالكلمة +بالكليات +بالكلية +بالكمبيوتر +بالكمة +بالكمون +بالكمين +بالكهرباء +بالكورتيزون +بالكورنيش +بالكوفة +بالكوليج +بالكوليرا +بالكون +بالكويت +بالكي +بالكيان +بالكيس +بالكيسي +بالكيفية +بالكيماويات +باللآلئ +باللائمة +باللاحقين +باللافتات +باللامباشر +باللباس +باللجنة +باللجوء +باللحظة +باللعب +باللفظ +باللفق +باللقاء +بالله +باللهجة +باللهفة +باللوفر +باللون +بالليدي +بالليزر +بالليل +بالليمون +بالمأساة +بالمؤلفين +بالمؤن +بالمئات +بالماء +بالمائة +بالمادة +بالمارة +بالمارينز +بالماضي +بالماكياج +بالماكينة +بالماورد +بالمباني +بالمبنى +بالمبيدات +بالمبيضّ +بالمتابعات +بالمتاح +بالمتحف +بالمتربصّين +بالمتعة +بالمتلازمة +بالمتنزَّه +بالمثقف +بالمثل +بالمثول +بالمثير +بالمجاملة +بالمجان +بالمجتمع +بالمجلة +بالمجلس +بالمجمع +بالمجموعات +بالمجين +بالمحاصيل +بالمحاضرات +بالمحافظة +بالمحاليل +بالمحاماة +بالمحبة +بالمحبطات +بالمحتاج +بالمحرمات +بالمحصلة +بالمحصول +بالمحطات +بالمحلات +بالمحميات +بالمحمية +بالمحيط +بالمخابر +بالمخاطر +بالمختبر +بالمخترع +بالمختصر +بالمخرج +بالمخطوطات +بالمخيلة +بالمدارس +بالمدافع +بالمدرسة +بالمدن +بالمديح +بالمدينة +بالمذاهب +بالمرآة +بالمرأة +بالمراحل +بالمرارة +بالمرافق +بالمراكب +بالمراكز +بالمرة +بالمرتبة +بالمرج +بالمرجعيات +بالمرح +بالمرحلة +بالمرسم +بالمرصاد +بالمرصد +بالمرض +بالمرضى +بالمركب +بالمركز +بالمرمر +بالمرور +بالمرونة +بالمري +بالمزيد +بالمسألة +بالمسؤولية +بالمسئولية +بالمسائل +بالمساج +بالمساجد +بالمساحات +بالمساحة +بالمسارح +بالمسافة +بالمساهمة +بالمساواة +بالمستثمر +بالمستحيل +بالمستر +بالمستقبل +بالمستقبليات +بالمستندات +بالمستنقعات +بالمستودع +بالمستوطنات +بالمستوى +بالمسجد +بالمسح +بالمسرات +بالمسرح +بالمسز +بالمسطرة +بالمسعكر +بالمسكنات +بالمسكّنات +بالمسلم +بالمسمى +بالمسيحية +بالمشاركة +بالمشاريع +بالمشاعر +بالمشاكل +بالمشاهد +بالمشرط +بالمشرق +بالمشروعات +بالمشفى +بالمشكلة +بالمشهد +بالمشي +بالمصاب +بالمصاعب +بالمصالح +بالمصالحة +بالمصانع +بالمصاهرة +بالمصحف +بالمصدر +بالمصطلحات +بالمصعد +بالمصير +بالمضادات +بالمطابقة +بالمطار +بالمطبوعات +بالمطر +بالمطرب +بالمطلق +بالمطلوب +بالمظاهر +بالمظلات +بالمظلة +بالمعادل +بالمعادي +بالمعارك +بالمعاني +بالمعاول +بالمعتدين +بالمعتقدات +بالمعدة +بالمعدل +بالمعدَّلات +بالمعرض +بالمعرفة +بالمعركة +بالمعروف +بالمعلم +بالمعلمين +بالمعلومات +بالمعنى +بالمعهد +بالمفاجآت +بالمفاداة +بالمفارقات +بالمفارقة +بالمفتاح +بالمفردة +بالمفرق +بالمفرّق +بالمفهوم +بالمقابل +بالمقابلة +بالمقارنة +بالمقاعد +بالمقالة +بالمقام +بالمقامات +بالمقاييس +بالمقدار +بالمقدمة +بالمقرنصات +بالمقص +بالمقطم +بالمقيمين +بالمكاتب +بالمكان +بالمكانة +بالمكملات +بالملابس +بالملاحة +بالملاحظة +بالملاحف +بالملاريا +بالملايين +بالملح +بالملعب +بالملك +بالملل +بالملوثات +بالملوخية +بالممارسة +بالممرات +بالممرضة +بالمملكة +بالمناخ +بالمنازل +بالمناسبات +بالمناسبة +بالمناسك +بالمناطق +بالمناظر +بالمنتجات +بالمنتوج +بالمنجزات +بالمنجنيق +بالمنسوخ +بالمنشآت +بالمنشار +بالمنطق +بالمنطقة +بالمنظار +بالمنظمات +بالمنظمة +بالمنهج +بالمهاجرين +بالمهارات +بالمهرج +بالمهرجانات +بالمهرطق +بالمهرطقين +بالمهمة +بالمهن +بالمواد +بالموارد +بالمواسم +بالمواصفات +بالمواصلات +بالمواضيع +بالمواطنة +بالموافقة +بالمواقع +بالمواهب +بالمواويل +بالموت +بالموجود +بالمودودي +بالموروث +بالموز +بالموسيقى +بالموسيقيين +بالموضوع +بالموضوعية +بالموعد +بالموقع +بالمومياوات +بالمياه +بالمِصَرْ +بالنا +بالناحية +بالنادر +بالنادي +بالنار +بالناس +بالنتائج +بالنتيجة +بالنث +بالنثر +بالنجاح +بالنجوم +بالنحت +بالنحل +بالنخيل +بالندم +بالندى +بالنرويج +بالنزاعات +بالنزول +بالنسبة +بالنسبية +بالنسخ +بالنسيان +بالنشارة +بالنشاط +بالنشر +بالنشوة +بالنص +بالنصائح +بالنصح +بالنصر +بالنصف +بالنصوص +بالنظام +بالنظر +بالنظرة +بالنظرية +بالنعناع +بالنعومة +بالنفائس +بالنفاذ +بالنفس +بالنفط +بالنفع +بالنفي +بالنقد +بالنقص +بالنقض +بالنقل +بالنقود +بالنقوش +بالنمطيّة +بالنمو +بالنموذج +بالنموذجين +بالنهار +بالنهب +بالنهر +بالنهضة +بالنواة +بالنوافير +بالنوتة +بالنيابة +بالنيل +بالنّظافة +بالنَّفيس +باله +بالها +بالهبوب +بالهجرات +بالهجرة +بالهداية +بالهدم +بالهدوء +بالهدى +بالهراوات +بالهرطقة +بالهرم +بالهطول +بالهلال +بالهلب +بالهلع +بالهم +بالهموم +بالهناء +بالهناءة +بالهند +بالهندسة +بالهواء +بالهوة +بالهولندية +بالهوية +بالهيئة +بالهيدروجين +بالهيكل +بالهيمنة +بالهِرَم +بالواجبات +بالواقع +بالواقفين +بالوجد +بالوجه +بالوجود +بالوحدات +بالوحدة +بالوحي +بالوخز +بالود +بالوداعة +بالوراثة +بالورد +بالورع +بالورق +بالورم +بالوزارة +بالوزن +بالوس +بالوسائل +بالوسط +بالوصــــال +بالوصف +بالوصول +بالوطن +بالوطنين +بالوظائف +بالوظيفة +بالوعر +بالوعى +بالوعيد +بالوفود +بالوفيات +بالوقاية +بالوقت +بالوقود +بالوقوف +بالوكالة +بالولادة +بالولايات +بالوليد +بالونات +بالوهج +بالوهن +بالي +باليأس +باليابان +بالية +باليتة +باليته +باليخت +باليد +باليدين +باليسيرة +باليقين +باليمامة +باليمن +بالينو +باليه +باليهود +باليوم +باليون +بامبو +بامتداد +بامتدادات +بامتصاص +بامتعاض +بامتلاك +بامتياز +بامتيازات +بامرأة +بامشي +بامكانية +باموات +بان +باناسونيك +باناهي +بانتباه +بانتحال +بانتخاب +بانتشار +بانتشال +بانتصار +بانتظار +بانتظارنا +بانتظاره +بانتظارهم +بانتظاري +بانتظام +بانتعاشة +بانتفاء +بانتقام +بانتماء +بانتمائه +بانتهاء +بانحطاط +بانحناء +بانحناءاته +بانحناءة +بانخراطه +بانخراطي +بانخفاض +باندفاع +باندفاعة +باندماجها +بانزعاج +بانسجام +بانسداد +بانسياب +بانشاء +بانصرافه +بانصياعها +بانضمامها +بانطباع +بانطباعات +بانطلاق +بانفجار +بانفسهم +بانفعال +بانفعالات +بانقباض +بانقراض +بانقشاع +بانكماش +بانكماشها +بانكوك +بانهيار +بانيان +بانيبال +باهت +باهتا +باهتاً +باهتة +باهتمام +باهتمامات +باهتين +باهر +باهراً +باهرة +باهظ +باهظا +باهظاً +باهظة +باهي +باور +باورز +باورو +باولا +باولنج +باولو +باولين +باى +باي +باية +بايتان +بباب +بباريس +بباعة +بباكستان +ببال +بباله +ببالها +ببالي +ببانكوك +ببتيد +ببث +ببحار +ببحبوحة +ببحة +ببحث +ببحثكم +ببحر +ببحوث +ببخار +ببدء +ببداياته +ببدلة +ببذل +ببراءة +ببراءته +ببراءتهم +ببراءتهما +ببرائته +ببراعة +ببراعته +ببرامج +ببرامجها +ببرانس +ببرجيه +ببرد +ببردى +ببرقية +ببرمنجهام +ببرنامج +ببرنامجه +ببروتين +ببرود +ببرودة +ببرودواي +ببروز +ببريطانيا +ببريقها +ببساطة +ببساطته +ببسالة +ببشاشة +ببشر +ببشرة +ببشريتنا +ببصره +ببصرها +ببصيرة +ببصيرته +ببضع +ببطء +ببطاريات +ببطاقات +ببطن +ببطولة +ببطولته +ببطولتها +ببطون +ببعض +ببعضها +ببعضهما +ببعوضة +ببعيد +ببقاء +ببكاء +ببلاد +ببلازموديوم +ببلاش +ببلد +ببلدة +ببلدتها +ببلدية +ببللا +ببلنسيه +ببليوجرافي +ببناء +ببناءه +ببنادقهم +ببنت +ببندقية +ببنك +ببنود +ببنية +ببنيته +ببهاء +ببهجة +ببوابة +ببوبال +ببور +ببولندا +ببومباي +ببيئات +ببيئة +ببيئته +ببيان +ببيانه +ببيت +ببيروت +ببيروقراطية +ببيشة +ببيع +بتأ +بتأبين +بتأثر +بتأثير +بتأثيراتها +بتأجير +بتأجيل +بتأسيس +بتأشيرات +بتأصيل +بتأليف +بتأمل +بتأمين +بتأن +بتأويل +بتأييد +بتابوت +بتاتا +بتاتاً +بتاج +بتاجر +بتاخذ +بتاريخ +بتاريخنا +بتاريخه +بتبئير +بتبادل +بتبخيرها +بتبديد +بتبعاتها +بتبني +بتتبع +بتتويج +بتتويجه +بتتي +بتثاقل +بتثلث +بتجارب +بتجاوز +بتجبيرها +بتجديد +بتجربة +بتجربتي +بتجرده +بتجريب +بتجريم +بتجسيد +بتجلياتها +بتجمعات +بتجميعها +بتجنب +بتجويف +بتحالفها +بتحاليل +بتحد +بتحديات +بتحديث +بتحديد +بتحرير +بتحريرها +بتحريض +بتحريك +بتحريم +بتحسين +بتحصين +بتحضير +بتحفيظ +بتحقيق +بتحقيقها +بتحليل +بتحليلاته +بتحليلها +بتحميل +بتحمّل +بتحنية +بتحول +بتحوير +بتحويل +بتحية +بتحيزاتها +بتخدير +بتخرجي +بتخريج +بتخريشها +بتخزين +بتخصيب +بتخصيص +بتخطي +بتخطيط +بتخفيف +بتخليق +بتخليني +بتخيل +بتداخلاته +بتداعاياتها +بتدريب +بتدريس +بتدريسها +بتدعيمها +بتدلي +بتدمير +بتدويرها +بتدوين +بتذكيره +بتر +بترا +بتراب +بترابط +بتراث +بتراثنا +بتراثه +بتراثها +بتراكيز +بتربية +بتربيته +بترت +بترتيب +بترتيبات +بترتيبها +بترجمة +بترجمتها +بترجيع +بترحاب +بترخيص +بتردد +بترديد +بترسانتها +بترشيح +بترشيحه +بترفيع +بترقب +بترك +بتركك +بتركها +بتركيا +بتركيب +بتركيبها +بتركيزات +بترميم +بترول +بترولي +بترولية +بترويضها +بتري +بتزايد +بتزويد +بتزويدي +بتزويق +بتزيين +بتزيينها +بتسبورج +بتسجيل +بتسخيرها +بتسخين +بتسديد +بتسديدها +بتسعة +بتسلم +بتسليح +بتسليم +بتسليمه +بتسهيل +بتسويق +بتسيير +بتشتتنا +بتشجيع +بتشجيعي +بتشذيب +بتشريح +بتشريعات +بتشكيل +بتشنج +بتشويه +بتشويهه +بتشىيد +بتشييدها +بتصادمات +بتصحيح +بتصدير +بتصرف +بتصفية +بتصفيتها +بتصفيق +بتصميم +بتصميمه +بتصنيع +بتصنيف +بتصوير +بتصويرها +بتضافر +بتطبيق +بتطبيقات +بتطـوير +بتطليق +بتطور +بتطورات +بتطوير +بتطويره +بتطويرها +بتطويع +بتعاقب +بتعالي +بتعاليم +بتعامل +بتعاون +بتعب +بتعبئة +بتعبير +بتعدد +بتعدديتها +بتعديل +بتعريبه +بتعريض +بتعريف +بتعريفي +بتعقد +بتعقيب +بتعلم +بتعلمها +بتعليق +بتعليم +بتعليمهم +بتعميم +بتعيين +بتعيينه +بتفاصيل +بتفاصيلها +بتفاهم +بتفجير +بتفرد +بتفردها +بتفريخ +بتفريعاتها +بتفشي +بتفصيلاتها +بتفضيل +بتفوق +بتفوقه +بتفوّقها +بتقارب +بتقارير +بتقاليد +بتقاليده +بتقانيات +بتقبيلها +بتقتير +بتقدم +بتقدمه +بتقدير +بتقديرات +بتقديم +بتقديمها +بتقلبات +بتقليد +بتقليص +بتقنيات +بتقوية +بتقويتها +بتقويم +بتقوّض +بتقيؤ +بتكاتف +بتكاملها +بتكزز +بتكلفة +بتكليف +بتكون +بتكوين +بتكوينها +بتلات +بتلاطم +بتلال +بتلاميذ +بتلاوة +بتلبية +بتلخيصه +بتلر +بتلعثم +بتلعثمات +بتلقائية +بتلقي +بتلقيح +بتلك +بتلوث +بتلويحات +بتم +بتماثيل +بتمام +بتمثيل +بتمدد +بتمديد +بتمريرها +بتمرّدهم +بتمكن +بتمكنه +بتموجات +بتمويل +بتمويلها +بتمييز +بتناقض +بتناقضاتها +بتناول +بتنبيه +بتنسيب +بتنشيطهم +بتنظيم +بتنفع +بتنفيذ +بتنفيذها +بتنمية +بتنوع +بتنوعها +بتنوير +بتهدئة +بتهذيب +بتهريب +بتهريبها +بتهم +بتهمة +بتهمتي +بتوابع +بتواجده +بتواريخ +بتوازن +بتوازنه +بتوازنها +بتواصل +بتواضع +بتوافق +بتوافه +بتوجس +بتوجهاته +بتوجيه +بتوجيهات +بتوجيهه +بتوخي +بتوديع +بتوربينات +بتوزع +بتوزيع +بتوزيعها +بتوسعة +بتوسيع +بتوصية +بتوصيل +بتوصيلها +بتوضيح +بتوضيحه +بتوظيفها +بتوعك +بتوفير +بتوقيت +بتوقيع +بتولي +بتوليفة +بتونس +بتياراته +بتّه +بتُّ +بث +بثبات +بثتها +بثرائه +بثرثرته +بثروة +بثروتها +بثعابين +بثقافات +بثقب +بثقة +بثقته +بثقل +بثقله +بثلاث +بثلاثة +بثلثي +بثمانمائة +بثمرات +بثمن +بثمنه +بثمنها +بثها +بثوبه +بثوبها +بثور +بثورة +بثورتي +بثياب +بثّ +بجائزة +بجائزتنا +بجائزتها +بجامع +بجامعة +بجانب +بجانبنا +بجانبه +بجانبها +بجانبهم +بجانبي +بجاهليّه +بجبال +بجبروت +بجبل +بجثته +بجحافل +بجد +بجدار +بجدارة +بجدة +بجدران +بجدرانه +بجدي +بجدية +بجديد +بجديّة +بجدّ +بجذب +بجذورك +بجذوره +بجذورها +بجذوري +بجرأة +بجرأته +بجرحى +بجرد +بجرسه +بجرعات +بجريد +بجريدة +بجريرة +بجريرته +بجريمة +بجزء +بجزأيها +بجزئيته +بجزيئات +بجزية +بجزيرة +بجسد +بجسده +بجسدها +بجسدي +بجســمك +بجسم +بجسمه +بجسمها +بجع +بجعل +بجفافها +بجلاء +بجلابيبهم +بجلال +بجلالة +بجلطة +بجماعة +بجمال +بجمالها +بجمالية +بجماهيرية +بجمجمته +بجمرات +بجمع +بجمعها +بجمعية +بجمل +بجملة +بجميع +بجميل +بجميلهم +بجناحها +بجناحيه +بجناحيها +بجنازة +بجنازته +بجنان +بجند +بجندي +بجنس +بجنوب +بجنوده +بجنوز +بجنون +بجني +بجنيف +بجهاز +بجهد +بجهده +بجهود +بجهودها +بجو +بجوائز +بجواب +بجوار +بجواره +بجوارهم +بجواز +بجوازها +بجوازي +بجوامع +بجوانب +بجودته +بجوربيه +بجولات +بجولة +بجولتنا +بجوهانسبيرج +بجوهر +بجوهرية +بجينات +بحائط +بحاثة +بحاجة +بحادث +بحادثة +بحادثٍ +بحار +بحارا +بحاراً +بحارة +بحارته +بحاسباتهم +بحال +بحالات +بحالة +بحالته +بحب +بحبالها +بحبه +بحبها +بحبيبته +بحبّ +بحة +بحت +بحتا +بحتاً +بحتة +بحتمية +بحث +بحثا +بحثان +بحثاً +بحثت +بحثنا +بحثه +بحثها +بحثوا +بحثي +بحثية +بحثين +بحثًا +بحجارة +بحجة +بحجر +بحجم +بحجمه +بحجمها +بحد +بحدة +بحدتها +بحدسه +بحدوث +بحدود +بحديث +بحديثنا +بحديثه +بحديثها +بحديثهم +بحديقة +بحذافيره +بحذاقه +بحذر +بحذف +بحذفها +بحذق +بحر +بحرا +بحرارة +بحرارةٍ +بحرارته +بحرارتها +بحراسة +بحران +بحراً +بحرص +بحرف +بحرفهم +بحرفية +بحرق +بحرقة +بحركات +بحركاتها +بحركاتهـا +بحركاتهما +بحركة +بحركته +بحرمان +بحرها +بحري +بحرية +بحريتها +بحريتين +بحرين +بحريين +بحزام +بحزب +بحزم +بحس +بحساب +بحساسية +بحساسيتها +بحسب +بحسبان +بحسبه +بحسرة +بحسم +بحسن +بحسنها +بحسه +بحصان +بحصة +بحصر +بحصص +بحصير +بحضارات +بحضارة +بحضارتهم +بحضور +بحظر +بحـالات +بحـب +بحـوالى +بحـيث +بحفاظه +بحفاوة +بحفر +بحفريات +بحفظ +بحفل +بحفنة +بحق +بحقبة +بحقل +بحقن +بحقه +بحقهم +بحقوق +بحقوقها +بحقوقهم +بحقوقهن +بحقولها +بحقيبة +بحقيقة +بحقيقتها +بحكاياته +بحكاية +بحكم +بحكماء +بحكمة +بحل +بحلاقة +بحلب +بحلة +بحلته +بحلف +بحلقة +بحلم +بحلمة +بحلمها +بحلمٍ +بحلول +بحلوها +بحماس +بحماسة +بحمام +بحماية +بحمد +بحمرة +بحمص +بحمل +بحملات +بحملة +بحملته +بحمله +بحملها +بحمولاتها +بحمى +بحميمية +بحنان +بحنجرتي +بحواجز +بحوادث +بحواديت +بحواسنا +بحوالي +بحوث +بحوثهم +بحوثي +بحوزة +بحوزتها +بحوزتهما +بحوزتي +بحوض +بحياء +بحياة +بحياتك +بحياته +بحياتها +بحياتهم +بحياتي +بحياد +بحيادها +بحيازته +بحيث +بحيرات +بحيرة +بحيرتا +بحيرتي +بحيوية +بحيويتها +بحّ +بحّاراً +بحّارة +بخار +بخارجها +بخاصة +بخاطرها +بخاله +بخبث +بخبر +بخبرات +بخبراتها +بخبراتهم +بخبزه +بخت +بختم +بخجل +بخدمات +بخدماته +بخدماتهم +بخدمة +بخراطيش +بخرافات +بخرق +بخروج +بخروجك +بخريطة +بخزانة +بخسارته +بخسةَ +بخصائص +بخصائصها +بخصاله +بخصم +بخصوبة +بخصوص +بخصوصية +بخصوصيتها +بخضرتها +بخط +بخطاب +بخطابها +بخطة +بخطر +بخطط +بخطه +بخطوات +بخطواته +بخطوة +بخطوتها +بخطورة +بخطوط +بخطى +بخفة +بخفر +بخفض +بخفية +بخلاء +بخلاف +بخلافة +بخلافته +بخلايا +بخلخلة +بخلدها +بخلط +بخلع +بخلعها +بخلق +بخلو +بخلوها +بخلية +بخليط +بخمارها +بخمسة +بخمسمائة +بخمسين +بخواطرنا +بخوف +بخوفي +بخيالي +بخيبات +بخيت +بخير +بخيراتها +بخيره +بخيرها +بخيلا +بخيمة +بخيوط +بد +بدء +بدءا +بدءاً +بدءوا +بدءًا +بدأ +بدأب +بدأت +بدأتها +بدأتُ +بدأن +بدأنا +بدأه +بدأها +بدأوا +بدئ +بدا +بداء +بدائرتهم +بدائل +بدائياً +بدائية +بدائيتها +بدائيين +بداخل +بداخله +بداخلها +بداخلهم +بداخلي +بدار +بدارا +بداره +بداعي +بدافع +بدانة +بداهة +بدايات +بداياته +بداياتها +بداياتهم +بداياتي +بداية +بدايةً +بدايته +بدايتها +بدايتي +بداً +بدبلوم +بدبوس +بدت +بدخول +بدخولنا +بدخولها +بدد +بدر +بدراسات +بدراسة +بدراسته +بدراستها +بدران +بدرت +بدرجات +بدرجة +بدرس +بدرع +بدرها +بدروبهم +بدروس +بدري +بدعائه +بدعم +بدعمها +بدعوة +بدعوتنا +بدعوته +بدعوتها +بدعوتي +بدعوى +بدفء +بدفئها +بدفتين +بدفع +بدفن +بدفنه +بدقات +بدقة +بدقيقة +بدقّة +بدل +بدلا +بدلات +بدلالات +بدلاً +بدلة +بدلت +بدلتا +بدلته +بدلكها +بدلوه +بدلوها +بدليل +بدم +بدمائه +بدمشق +بدمعي +بدن +بدنه +بدني +بدنياً +بدنية +بدهان +بدهشة +بدهشه +بدهلي +بدهم +بدهيا +بدواء +بدواءين +بدوائر +بدوافع +بدور +بدورانه +بدورنا +بدوره +بدورها +بدورهم +بدورهن +بدوري +بدول +بدولة +بدولتين +بدون +بدونها +بدوي +بدوية +بدويًّا +بديار +بديع +بديعة +بديكور +بديل +بديلا +بديلاً +بديلة +بديلتين +بديمومة +بدينا +بدينار +بدينه +بدينها +بدينهم +بدينين +بديهة +بديهي +بديهية +بديوان +بديوانه +بدّ +بدّاً +بدّدها +بدًّا +بذاءته +بذات +بذاته +بذاتها +بذاتهم +بذار +بذارها +بذاك +بذاكرته +بذخا +بذراعه +بذرة +بذرَّات +بذكاء +بذكائك +بذكائه +بذكائها +بذكر +بذكره +بذكرها +بذكرى +بذكريات +بذكور +بذل +بذلت +بذلتم +بذلتَه +بذلتُه +بذلك +بذله +بذلها +بذلوا +بذلّ +بذهبية +بذهني +بذهنية +بذهول +بذور +بذورها +بذورٍ +بذوق +بذوي +بذيله +بر +برءوسنا +برأس +برأسمال +برأسه +برأسي +برأوكسيد +برأي +برأيك +برأيكم +برأينا +برأيي +برؤى +برؤية +برؤيته +برؤيتهم +برئاسة +برئيس +برئيسة +براء +براءات +براءة +براءت +براءته +براءتها +براءتهم +برائحة +برابطة +براتس +براثن +براثنه +براجماتية +براحة +براحته +برادار +برادبري +برادفورد +براذرز +براري +براز +برازه +برازيليا +براسي +براعة +براعته +براعتها +براعم +براعمها +براقة +برامج +برامجه +برامجها +براهي +براهين +براون +برايتنباك +برايتون +برايد +برايل +براييبا +براً +بربادوس +بربارا +بربارة +برباط +بربح +بربحه +بربروس +بربروسا +بربروسّا +بربري +بربرية +بربط +بربطها +بربع +بربه +برتراند +برتقال +برتقالها +برتقالي +برتقالية +برته +برتولت +برج +برجا +برجال +برجالها +برجام +برجاً +برجل +برجليها +برجه +برجي +برجين +برحلات +برحلاته +برحلة +برحلتنا +برحلته +برحمته +برحيل +برحيله +برخت +برد +بردا +برداً +بردي +برديات +بردية +برذاذ +برذرز +برر +بررة +برز +برزت +برزوا +برس +برسائل +برسالة +برسالته +برسالتها +برسالتهم +برستد +برسم +برسول +برسوم +برسومات +برش +برشاد +برشاقة +برشة +برشلونة +برصاصات +برصد +برطوبة +برع +برعاية +برعايته +برعب +برعم +برعما +برف +برفاهية +برفض +برفضها +برفع +برفعه +برفق +برفوف +برفيع +برفيقات +برق +برقبة +برقة +برقصه +برقعة +برقوق +برك +بركابه +بركات +بركان +بركانا +بركاني +بركب +بركة +بركوب +برلك +برلمان +برلماني +برلمانيا +برلين +برم +برمائية +برمال +برمته +برمتها +برمجة +برمنجهام +برمود +برمي +برميل +برميمه +برميها +برمّته +برمّتها +برن +برنارد +برناردشو +برناسيّ +برناسيّا +برنامج +برنامجا +برنامجاً +برنامجكم +برنامجنا +برنامجه +برنامجها +برنامجي +برنامجيها +برنامجًا +برنزي +برنزية +برنسه +برني +برنيق +برنيكي +برهافة +برهان +برهبة +برهة +بروائح +بروايته +بروبيلين +بروتمان +بروتون +بروتونا +بروتونات +بروتيز +بروتين +بروتينات +بروتيناً +بروج +بروح +بروحك +بروحه +بروحي +برودة +برودته +برودواي +بروز +بروزاك +بروسبيرو +بروسن +بروسيا +بروشورات +بروعة +بروق +بروكس +بروكسل +بروكسيل +برومود +برونسيك +برويز +بري +بريء +بريئا +بريئة +بريا +بريادار +برياض +برية +بريتانيا +بريتشارد +بريتوريا +بريتون +بريخان +بريد +بريدج +بريستول +بريسلي +بريشته +بريشه +بريشها +بريطاني +بريطانيا +بريطانية +بريطانيتين +بريطانيون +بريفير +بريق +بريقه +بريقها +بريل +بريلي +بريليوم +بريماما +بريمر +بريندل +برينستون +بريّة +بريّتين +برُعب +برّاق +برّحها +برَّد +برِّية +بزات +بزاد +بزاوية +بزبائنه +بزته +بزجاج +بزجاجات +بزحف +بزخارف +بزخرفة +بزخرفتها +بزخرفها +بزراعة +بزراعته +بزرع +بزرقة +بزرقته +بزرقتها +بزعامة +بزعم +بزعمه +بزعنفة +بزكاته +بزكام +بزمام +بزماننا +بزمكان +بزمن +بزميلي +بزهرة +بزهرتها +بزواج +بزوار +بزوال +بزوجة +بزوجته +بزوجي +بزيادة +بزيادته +بزيارات +بزيارة +بزيارته +بزيت +بزيتون +بزيه +بزيها +بزيهم +بزيورخ +بزيوريخ +بزّهم +بس +بسؤال +بسؤالها +بسؤالهم +بسابق +بساتين +بساحة +بساحل +بسارس +بسارية +بساط +بساطة +بساطته +بساطتها +بساعات +بساعة +بسام +بسبابته +بسبابتِهِ +بسبب +بسببك +بسببه +بسببها +بسببهم +بسبره +بسبع +بسبعة +بسبيلنا +بست +بستائر +بستان +بستانا +بستاني +بستة +بستر +بستين +بسجن +بسحب +بسحر +بسحرها +بسخرية +بسخط +بسد +بسداده +بسذاجته +بسر +بسردها +بسرطان +بسرطانات +بسرعات +بسرعة +بسرعتها +بسرقة +بسرها +بسرور +بسري +بسرية +بسرٍّ +بسط +بسطالي +بسطة +بسطها +بسطوا +بسعادة +بسعال +بسعة +بسعر +بسعرها +بسفارتنا +بسفرتَيْن +بسفري +بسفينة +بسقف +بسقوط +بسكانها +بسكر +بسلاح +بسلاسة +بسلام +بسلامة +بسلحفاة +بسلسلة +بسلطة +بسلك +بسلوك +بسلوكه +بسم +بسمائها +بسمات +بسماتنا +بسماحته +بسمة +بسمةٌ +بسمتها +بسمنود +بسمو +بسن +بسنة +بسند +بسنن +بسنوات +بسنين +بسهولة +بسوء +بسوائل +بسواه +بسوداوية +بسوط +بسوطه +بسوق +بسونيتات +بسويسرا +بسيادته +بسيارات +بسيارة +بسيارته +بسيارتي +بسياسة +بسياق +بسياقات +بسيجارة +بسيد +بسيدة +بسيدنا +بسير +بسيرورة +بسيط +بسيطا +بسيطاً +بسيطة +بسيطرة +بسيفه +بسيقانه +بسيل +بسيناريوهاتها +بسيون +بسّام +بشأن +بشأنه +بشأنها +بشأني +بشؤون +بشئون +بشابة +بشاحنة +بشار +بشارب +بشارة +بشارع +بشاش +بشاطئ +بشاعة +بشباب +بشباك +بشبكات +بشبكة +بشبه +بشتى +بشجاعة +بشجاعتهم +بشحن +بشحومها +بشخص +بشخصياتها +بشخصياتهم +بشخصية +بشخصيته +بشخصيتي +بشخير +بشخيره +بشدة +بشذا +بشذى +بشر +بشراء +بشرائط +بشرائه +بشرارتها +بشراسة +بشراهة +بشرايين +بشراً +بشرب +بشرة +بشرته +بشرتهم +بشرتي +بشرح +بشرط +بشرف +بشرق +بشرقها +بشركات +بشركة +بشركتنا +بشرها +بشروحاته +بشروط +بشرى +بشري +بشرياً +بشرية +بشطريها +بشظف +بشع +بشعابها +بشعار +بشعاع +بشعبنا +بشعبية +بشعة +بشعر +بشعري +بشعريتها +بشعور +بشفافية +بشق +بشقاء +بشقيقاتها +بشقيقه +بشقيه +بشقيها +بشكل +بشكله +بشكلها +بشكوى +بشكّه +بشلالات +بشمال +بشموخ +بشن +بشهادات +بشهادة +بشهادتي +بشهر +بشهرة +بشهرته +بشهرين +بشهقة +بشهوانية +بشهور +بشهية +بشوارع +بشواطئنا +بشواطئه +بشواطئها +بشوالٍ +بشوق +بشوكة +بشى +بشيء +بشيءٍ +بشيئين +بشيت +بشيخ +بشيخه +بشيخي +بشير +بشيوع +بصاحبها +بصادراتنا +بصاروخ +بصالته +بصبر +بصبره +بصبرها +بصحبة +بصحبته +بصحبتهم +بصحة +بصحتهم +بصحرائها +بصحفها +بصخب +بصخور +بصداع +بصداقة +بصدد +بصدده +بصددها +بصدري +بصدق +بصدقها +بصدور +بصديق +بصديقه +بصديقي +بصراحة +بصرخات +بصرخة +بصرف +بصرك +بصره +بصرها +بصرهم +بصري +بصرية +بصريح +بصعوبات +بصعوبة +بصعيد +بصــــفة +بصـورة +بصفاء +بصفات +بصفة +بصفتكم +بصفته +بصفتي +بصفر +بصفوفها +بصفّ +بصقته +بصقلية +بصل +بصلابة +بصلة +بصلةٍ +بصلواته +بصمات +بصماتها +بصمة +بصمت +بصمتي +بصمود +بصناعة +بصنع +بصنعاء +بصنعه +بصنعِ +بصنفيها +بصنوف +بصوت +بصوته +بصور +بصورة +بصورتها +بصورتيه +بصورهم +بصوفيّه +بصيانة +بصيد +بصيده +بصير +بصيراً +بصيرة +بصيرتنا +بصيرته +بصيرتهم +بصيص +بصيصا +بضآلة +بضائع +بضائعنا +بضائعه +بضائعهم +بضائقة +بضاعة +بضاعته +بضاعتهم +بضاعتي +بضجر +بضحاياها +بضحكة +بضرائب +بضربة +بضروب +بضرورة +بضع +بضعة +بضعف +بضفاف +بضمان +بضمير +بضوء +بضواحي +بضياء +بضياعه +بضيق +بضيقهما +بط +بطء +بطئا +بطائرات +بطائرة +بطائلٍ +بطابع +بطابعين +بطاريات +بطارية +بطاطسهم +بطاقات +بطاقاته +بطاقاتها +بطاقة +بطاقتك +بطاقته +بطالة +بطبائعهم +بطباشير +بطباعة +بطبع +بطبعات +بطبعة +بطبعه +بطبعها +بطبعهم +بطبعي +بطبقة +بطبيعة +بطبيعته +بطبيعتها +بطرابلس +بطراز +بطرح +بطرد +بطرده +بطرس +بطرسبرج +بطرسبورج +بطرف +بطرفتين +بطرق +بطريرك +بطريق +بطريقا +بطريقة +بطريقته +بطريقتهم +بطريقتي +بطريقتين +بطش +بطشها +بطعم +بطعمه +بطفلة +بطفلهم +بطل +بطلا +بطلاء +بطلاب +بطلاقة +بطلان +بطلاً +بطلب +بطلبات +بطلة +بطلتها +بطلق +بطله +بطلها +بطلي +بطليموس +بطمأنينة +بطموح +بطن +بطنا +بطنه +بطنها +بطني +بطنِ +بطه +بطوطة +بطوكيو +بطول +بطولات +بطولة +بطولتها +بطوله +بطولها +بطون +بطونها +بطونهم +بطيء +بطيئا +بطيئاً +بطيئة +بطيخ +بطينية +بطيور +بظاهرة +بظرفه +بظروفه +بظلاله +بظلالها +بظلام +بظلمهم +بظمئها +بظهر +بظهره +بظهور +بظهورها +بظواهر +بعائلة +بعادات +بعاداتنا +بعالم +بعالمنا +بعالمهم +بعام +بعامة +بعامل +بعامين +بعباءات +بعباءتها +بعبارة +بعبث +بعبد +بعبدا +بعبدالحليم +بعتاب +بعث +بعثات +بعثة +بعثت +بعثته +بعثراتي +بعثها +بعجالة +بعد +بعدئذ +بعدا +بعداها +بعداً +بعدة +بعدت +بعدد +بعددها +بعدك +بعدم +بعدما +بعدمها +بعده +بعدها +بعدهم +بعدهما +بعدوى +بعدي +بعدية +بعدين +بعدًا +بعدٍ +بعدُ +بعذاباته +بعرائضهم +بعراك +بعربية +بعرض +بعرق +بعرقك +بعروبيته +بعروض +بعريه +بعز +بعزف +بعزفه +بعزم +بعزمه +بعزيمة +بعزّ +بعسل +بعشب +بعشر +بعشرات +بعشرة +بعشرين +بعشق +بعصا +بعصارة +بعصبية +بعصبيته +بعصر +بعصير +بعصيهم +بعض +بعضا +بعضاً +بعضكم +بعضلة +بعضنا +بعضه +بعضها +بعضهم +بعضهما +بعضهن +بعضي +بعضًا +بعضِ +بعضِها +بعطائه +بعطر +بعطسة +بعطف +بعطلتهم +بعظام +بعظيم +بعـض +بعـــض +بعــــض +بعقائد +بعقاقير +بعقد +بعقل +بعقلانية +بعقلي +بعقلية +بعقوبات +بعقول +بعكس +بعل +بعلاج +بعلاقة +بعلامات +بعلامة +بعلبك +بعلبكي +بعلم +بعلماء +بعلمائنا +بعلمائه +بعلمه +بعلوم +بعلومها +بعلوية +بعمائرها +بعمان +بعمر +بعمره +بعمق +بعمل +بعملائه +بعملك +بعملنا +بعمله +بعملها +بعملهم +بعملي +بعمليات +بعملية +بعمليتها +بعمود +بعموميتها +بعناد +بعناصر +بعناصرها +بعناية +بعنصر +بعنف +بعنفه +بعنقه +بعنوان +بعهد +بعهدهم +بعوارض +بعواقبه +بعوامل +بعودة +بعودته +بعوده +بعوضة +بعون +بعيب +بعيد +بعيدا +بعيداً +بعيدة +بعيدتين +بعيدين +بعيدًا +بعيرا +بعيرك +بعيره +بعيري +بعين +بعينه +بعينها +بعيني +بعينين +بعينيه +بعينيها +بعيون +بعيونه +بعيونها +بعيوني +بـ +بـرصاصة +بـما +بـماء +بـمـطاردة +بفؤاد +بفئات +بفائدة +بفائدتها +بفارق +بفاعلية +بفتاة +بفتة +بفتح +بفترة +بفحص +بفخر +بفداحة +بفراء +بفرادته +بفراستكم +بفرح +بفرحة +بفرسان +بفرسه +بفرص +بفرط +بفرق +بفرنسا +بفريدريك +بفريضة +بفريق +بفسائل +بفستانها +بفشل +بفصاحة +بفصاحته +بفصاحتها +بفصل +بفصول +بفض +بفضاء +بفضائل +بفضل +بفضله +بفضلها +بفضلهم +بفطور +بفعالية +بفعاليته +بفعل +بفعله +بفقد +بفقدان +بفقر +بفك +بفكر +بفكرة +بفكرك +بفكره +بفكرهم +بفلان +بفلتر +بفلسطين +بفلوريدا +بفم +بفمه +بفن +بفناء +بفنانين +بفنجا +بفنجان +بفندق +بفهم +بفهمه +بفوائد +بفوزحزب +بفوزه +بفوزها +بفوكوه +بفول +بفيتامين +بفيروس +بفيلدونج +بقاء +بقاءه +بقاءهم +بقائمة +بقائه +بقائها +بقائهم +بقائي +بقاتل +بقاتلته +بقادرين +بقارّة +بقاطرة +بقاع +بقاعدة +بقافلة +بقافية +بقال +بقالب +بقالة +بقامته +بقانون +بقايا +بقبة +بقبر +بقبره +بقبضة +بقبضتيها +بقبلاته +بقبلة +بقبول +بقتل +بقتله +بقداس +بقدر +بقدرات +بقدراته +بقدراتها +بقدراتهم +بقدرة +بقدرته +بقدرتها +بقدسية +بقدمه +بقدميه +بقدميها +بقدوم +بقدونس +بقذفها +بقراءة +بقراءته +بقراءتها +بقراب +بقرار +بقراري +بقرب +بقربه +بقربها +بقربي +بقرشين +بقرض +بقرن +بقرون +بقرية +بقريتنا +بقرّاء +بقزامتي +بقسط +بقسم +بقسوة +بقسيمة +بقشرة +بقشيش +بقصائد +بقصته +بقصد +بقصر +بقصص +بقصصه +بقصيدة +بقصيدته +بقصيرة +بقضاء +بقضايا +بقضيب +بقضية +بقضيته +بقطار +بقطاع +بقطرياني +بقطع +بقطعة +بقع +بقعة +بقعته +بقعٌ +بقــــضايا +بقفزاته +بقفزة +بقلادة +بقلب +بقلبها +بقلبي +بقلة +بقلعة +بقلق +بقلم +بقلمه +بقلمها +بقلمي +بقلوبهم +بقليل +بقماش +بقمر +بقنا +بقنابل +بقناع +بقناعة +بقنـاطره +بقنفذ +بقهر +بقوا +بقوات +بقواعد +بقوالب +بقوانين +بقوة +بقوتك +بقوته +بقوتها +بقوش +بقول +بقولته +بقولنا +بقوله +بقولها +بقولهم +بقومه +بقوه +بقى +بقي +بقيء +بقيادة +بقيادته +بقياس +بقيام +بقية +بقيت +بقيتها +بقيتِ +بقيد +بقيصري +بقيق +بقيم +بقيمة +بقيود +بك +بكاء +بكاؤها +بكائن +بكائه +بكاتب +بكادر +بكارة +بكاف +بكافة +بكالوريا +بكالوريوس +بكاليفورنيا +بكامل +بكامله +بكاملها +بكبار +بكبر +بكبرياء +بكة +بكت +بكتائب +بكتاب +بكتابات +بكتاباته +بكتابة +بكتابته +بكتابتها +بكتابي +بكتب +بكتفه +بكتل +بكتلة +بكتلها +بكتيريا +بكتيرية +بكثافة +بكثرة +بكثير +بكحّة +بكر +بكرا +بكراتشى +بكراتشي +بكراسي +بكرامة +بكرامته +بكرامتي +بكرة +بكرةً +بكساوي +بكسر +بكسل +بكسوتها +بكسور +بكشف +بكشفك +بكشفه +بكف +بكفاءة +بكفالة +بكفها +بكل +بكلام +بكلامه +بكلتا +بكلفة +بكلمات +بكلماته +بكلمة +بكلمتين +بكلية +بكليته +بكليهما +بكم +بكميات +بكمية +بكمّ +بكناياتها +بكندا +بكنز +بكنوز +بكوبا +بكورونافيرس +بكوري +بكون +بكونك +بكونه +بكونها +بكوني +بكى +بكيت +بكيفية +بكيماويات +بكين +بكَمّ +بكِ +بل +بلا +بلاء +بلاؤه +بلاتيني +بلاد +بلادا +بلادة +بلادك +بلادنا +بلاده +بلادها +بلادهم +بلادي +بلازا +بلازموديوم +بلاس +بلاستيك +بلاستيكية +بلاش +بلاشك +بلاط +بلاطة +بلاطكم +بلاطه +بلال +بلامبالاة +بلانك +بلانينج +بلاهة +بلاير +بلايموث +بلايين +بلباقة +بلبلة +بلبنان +بلة +بلتفتون +بلجام +بلجيكا +بلحاف +بلحظات +بلحظة +بلحيتهِ +بلد +بلدا +بلدان +بلدانا +بلداننا +بلدانه +بلدانها +بلدانهم +بلداً +بلدة +بلدته +بلدتهم +بلدكم +بلدنا +بلده +بلدها +بلدهم +بلدوين +بلدي +بلديات +بلدية +بلدًا +بلدٍ +بلذة +بلس +بلسان +بلسانه +بلسانها +بلساني +بلسع +بلصق +بلطجي +بلطف +بلع +بلعبة +بلعبهم +بلعت +بلعنة +بلعوم +بلفافة +بلفت +بلفظتين +بلفها +بلفور +بلقاء +بلقائه +بلقب +بلقزيز +بلقمان +بلقيس +بلكونة +بللت +بلمسة +بلندن +بلهبها +بلهجة +بلهفة +بلو +بلوتارك +بلوحة +بلور +بلورة +بلورت +بلوشستان +بلوكان +بلومسبري +بلومندو +بلون +بلونه +بلونها +بلوني +بلونين +بلونيه +بلى +بليبيا +بليخ +بليد +بلير +بليس +بلينوس +بليون +بليونان +بليوني +بليونين +بلِبان +بلّة +بلْ +بم +بمآذنه +بمأساتنا +بمؤسسة +بمؤهلات +بمئات +بما +بماء +بمائة +بمائتي +بمائها +بمادة +بماذا +بماردين +بماضي +بماهية +بمبادئ +بمبادئه +بمبادراتها +بمبادرة +بمبادرته +بمباركة +بمبانيها +بمبدئه +بمبشر +بمبعد +بمبنى +بمبيد +بمتابعة +بمتاجر +بمتحف +بمتصل +بمتطلبات +بمتعة +بمتلازمة +بمثابة +بمثل +بمثله +بمثلها +بمثلهم +بمثيلاتها +بمجال +بمجالات +بمجالس +بمجاله +بمجامع +بمجتمع +بمجتمعات +بمجتمعاته +بمجتمعه +بمجدافين +بمجرد +بمجس +بمجسات +بمجلة +بمجلس +بمجملها +بمجموع +بمجموعات +بمجموعة +بمجموعها +بمحاذاة +بمحاربة +بمحاصيل +بمحاضرة +بمحاضرته +بمحافظة +بمحاكمة +بمحاولات +بمحاولاتي +بمحاولة +بمحبة +بمحبي +بمحبّيه +بمحتويات +بمحتوياته +بمحتوياتها +بمحدداتها +بمحصول +بمحض +بمحطات +بمحطة +بمحفظة +بمحلول +بمحمد +بمحمود +بمحنة +بمحو +بمخاطبة +بمخاطر +بمخالبه +بمختبر +بمختبرات +بمختلف +بمخرجين +بمخزون +بمخزونه +بمخلفات +بمخلوق +بمخلوقات +بمخلوقه +بمد +بمداد +بمدخلات +بمدر +بمدرسة +بمدرسته +بمدريد +بمدى +بمدي +بمدينة +بمدينتكم +بمدينتهم +بمدّها +بمذبحة +بمذهبه +بمرآة +بمراجعة +بمراجعتها +بمراحل +بمراحله +بمرارة +بمراسم +بمرافقة +بمرافقه +بمراقبة +بمراكز +بمربعات +بمرتب +بمرتبة +بمرتين +بمرجعه +بمرح +بمرحلة +بمرشح +بمرصد +بمرض +بمرضى +بمركز +بمرور +بمرونة +بمروياته +بمروية +بمريض +بمزاج +بمزاجية +بمزاولة +بمزايا +بمزاياه +بمزج +بمزيد +بمسألة +بمسؤوليته +بمسؤوليتهم +بمسئوليات +بمسئولية +بمسائل +بمسابقة +بمساحة +بمساحته +بمساحـة +بمسار +بمسارها +بمساعدات +بمساعدة +بمساعدتهم +بمساعدتي +بمسافة +بمساكن +بمساكنهم +بمساندة +بمستبق +بمستجدات +بمستقبل +بمستقبلهم +بمستلزماتها +بمستودع +بمستوطنات +بمستوى +بمستوي +بمستويات +بمسجد +بمسجل +بمسرح +بمسز +بمسقط +بمسلمة +بمسلمي +بمسندين +بمسيحيتهم +بمسيرة +بمسيرتهم +بمشاركة +بمشاريع +بمشاريعه +بمشاعر +بمشاعري +بمشاكل +بمشاكلك +بمشاهدات +بمشاهداتي +بمشاهدة +بمشروع +بمشقة +بمشكلة +بمشهد +بمشيئة +بمصاحبتها +بمصادر +بمصادرة +بمصادرتها +بمصادره +بمصالح +بمصدر +بمصدرها +بمصدريتها +بمصر +بمصطلح +بمضاربها +بمضاعفات +بمضمون +بمضي +بمطابع +بمطار +بمطاعم +بمطالب +بمطالعة +بمطربة +بمطرها +بمطهّر +بمظانه +بمظاهر +بمظاهرة +بمظهر +بمظهره +بمعادلة +بمعارض +بمعارضة +بمعارضها +بمعارضيه +بمعاشهم +بمعالجة +بمعالجتها +بمعامل +بمعاملتهم +بمعاونتنا +بمعايير +بمعبد +بمعدل +بمعدلات +بمعدن +بمعدَّلات +بمعدَّلاتٍ +بمعرض +بمعرضين +بمعرفة +بمعرفته +بمعزل +بمعطفه +بمعطيات +بمعظم +بمعـــناه +بمعلمة +بمعلومات +بمعماريته +بمعمل +بمعمودية +بمعناه +بمعناها +بمعنى +بمعني +بمعهد +بمعيار +بمعية +بمعيته +بمفاجأة +بمفاصلي +بمفاهيم +بمفتاح +بمفتاحه +بمفردات +بمفرده +بمفردها +بمفردهما +بمفهوم +بمفهومها +بمقابر +بمقاديرها +بمقاصدها +بمقاطعة +بمقالاته +بمقاومة +بمقايضة +بمقاييس +بمقبرة +بمقتضاه +بمقتضاها +بمقتضى +بمقتضي +بمقتضيات +بمقدار +بمقداره +بمقدرة +بمقدرته +بمقدساتها +بمقدم +بمقدمة +بمقدمته +بمقدور +بمقدورنا +بمقدوره +بمقدورهم +بمقر +بمقره +بمقصورة +بمقود +بمقولة +بمقومات +بمقياس +بمقياسه +بمكاتب +بمكاتبها +بمكافأة +بمكافأتها +بمكافحة +بمكان +بمكانة +بمكانتها +بمكاني +بمكبر +بمكة +بمكتبة +بمكتبه +بمكر +بمكن +بمكونات +بملء +بملابس +بملابسم +بملابسه +بملابسهم +بملابسهن +بملاحظاته +بملاحظة +بملاحقة +بملاعق +بملامسة +بملايين +بملايينه +بملايينها +بملحوظة +بملك +بملكية +بملل +بمليار +بمليارات +بمليم +بمليون +بمليوني +بمليونين +بممارسة +بممانعة +بممانعتها +بممر +بممرات +بمن +بمنأى +بمناجم +بمنازلها +بمناسبة +بمناطق +بمناظرها +بمنافسة +بمناقشة +بمناهج +بمناهجها +بمنتجات +بمنتجاتها +بمنتهى +بمنجزات +بمنح +بمنحة +بمنحه +بمنحها +بمنحوتتين +بمنخري +بمندوبين +بمنديل +بمنزل +بمنزلة +بمنزله +بمنشفة +بمنصب +بمنطق +بمنطقة +بمنطقية +بمنظار +بمنظماتها +بمنظمة +بمنظومة +بمنع +بمنعطف +بمنفذين +بمنفعة +بمنقاش +بمنهجه +بمنهجية +بمهاجمة +بمهاراتهم +بمهارة +بمهامها +بمهامهم +بمهرجان +بمهمة +بمهنة +بمهنية +بمواجهة +بمواد +بموارد +بموازاة +بمواصفات +بمواصلة +بمواطنيه +بموافقة +بمواقع +بمواقعها +بمواقيت +بمواكبة +بموت +بموته +بموجب +بموجبه +بموجبها +بموجة +بمودة +بموديلين +بموروث +بموسكو +بموسم +بموسيقاه +بموسيقاها +بموسيقى +بموضوع +بموعد +بموعود +بموقع +بموقعه +بموقعها +بموقفه +بموقفها +بمولد +بموهبتهم +بموهبتي +بمي +بمياه +بمياهه +بميدان +بميزانين +بميزة +بميسوري +بميكرفون +بميلاد +بن +بنا +بناء +بناءه +بناءً +بناؤه +بنائه +بنائها +بنائي +بناة +بنات +بناتها +بناتي +بنادق +بنار +بناطحات +بناظرها +بنافورته +بناقة +بناقدين +بنامٍ +بناه +بناها +بنايات +بناياتها +بناياتهم +بناية +بنبأ +بنباتات +بنبالهم +بنبرتي +بنبع +بنت +بنتا +بنتائج +بنتاج +بنتها +بنتيجة +بنتيوم +بنثاره +بنثر +بنجاب +بنجاح +بنجاحي +بنجاسة +بنجلاديش +بنحاس +بنحت +بنحو +بنخيلها +بند +بنداء +بندر +بندشوار +بندقية +بندورة +بندولاً +بنزاهة +بنزاهته +بنزع +بنزول +بنزيف +بنزين +بنسب +بنسبة +بنسبه +بنسخ +بنسخة +بنسل +بنسلفانيا +بنسيج +بنسيلفانيا +بنشأة +بنشاط +بنشاطات +بنشاطه +بنشر +بنشرها +بنشوة +بنصف +بنصها +بنصوص +بنصيب +بنصيحة +بنصيحته +بنضج +بنطالا +بنظارتيه +بنظافة +بنظافتها +بنظام +بنظامها +بنظر +بنظرات +بنظراته +بنظراتها +بنظرة +بنظرته +بنظري +بنظرية +بنظير +بنظيراتها +بنعم +بنعمة +بنعومة +بنفايات +بنفخ +بنفس +بنفسجية +بنفسك +بنفسه +بنفسها +بنفسي +بنفوذ +بنفي +بنفيه +بنفيها +بنقائصنا +بنقاط +بنقد +بنقش +بنقص +بنقصها +بنقطة +بنقل +بنقلة +بنقله +بنقلها +بنقوش +بنقوشها +بنك +بنكتة +بنمط +بنمطه +بنموذج +بنهايات +بنهاية +بنهايته +بنهب +بنهج +بنهضة +بنهم +بنو +بنوا +بنوادر +بنوازع +بنوب +بنوبة +بنوتة +بنود +بنودها +بنور +بنورماندي +بنورها +بنوري +بنوس +بنوع +بنوعه +بنوعية +بنوعيه +بنوك +بنى +بني +بنيات +بنيامين +بنيان +بنيانا +بنيانها +بنية +بنيت +بنيتنا +بنيتها +بنين +بنينا +بنيناه +بنيناها +بنيه +بنيها +بنيوي +بنيوية +بنيويورك +بنيويًا +بنيّ +بنَفَس +بنّاءة +به +بهؤلاء +بها +بهاء +بهاءه +بهاءها +بهاءً +بهائم +بهاجس +بهادور +بهالات +بهامشية +بهبيت +بهت +بهجة +بهجت +بهجرة +بهجرهم +بهجمات +بهجماتها +بهدف +بهدم +بهدنة +بهدوء +بهدوئه +بهذا +بهذه +بهذين +بهر +بهراواتهم +بهرتني +بهرتها +بهرني +بهزات +بهزة +بهزّها +بهستريا +بهستيريا +بهستيرية +بهـدوء +بهلع +بهلوانية +بهم +بهما +بهمان +بهمة +بهن +بهندسة +بهو +بهواجس +بهوس +بهول +بهولندا +بهونج +بهويتها +بهويتهم +بهيئة +بهيا +بهية +بهيكله +بهيمنة +بهيمي +بو +بوأها +بوابات +بواباتها +بوابة +بوابتين +بوابل +بواجب +بواجبات +بواجباته +بواجباتها +بواجباتي +بواجهة +بواحد +بواحدة +بواخر +بوادر +بواسطة +بواسطته +بواسطتها +بواشنطن +بواعث +بواقع +بواقعه +بواقعها +بواقعية +بواكيره +بواكيري +بوالب +بوالدي +بوالص +بوان +بوبال +بوتائر +بوتره +بوتس +بوتسوانا +بوتقة +بوتو +بوتيل +بوجدانه +بوجع +بوجه +بوجهات +بوجهة +بوجهه +بوجهها +بوجهي +بوجود +بوجودنا +بوجوده +بوجودها +بوجودهم +بوجودي +بوجوم +بوجوه +بوحدانية +بوحدة +بوحي +بوخالد +بوخز +بوخضير +بودلير +بودي +بوذية +بور +بورا +بورتوريكو +بورتوفينو +بورخارت +بورخس +بورد +بوردها +بورع +بورقة +بورقيبة +بوركهاردت +بورم +بورما +بورندي +بورنو +بوريقات +بوريما +بوزاة +بوزار +بوزارة +بوزاني +بوزن +بوزنه +بوزنها +بوزير +بوسائل +بوسائلنا +بوسائله +بوساطة +بوسط +بوسطن +بوسع +بوسعك +بوسعكم +بوسعه +بوسعهم +بوسعي +بوش +بوشاحها +بوشر +بوصات +بوصة +بوصتين +بوصف +بوصفه +بوصفها +بوصفي +بوصلة +بوصول +بوضع +بوضعية +بوضوح +بوطأة +بوطبنية +بوطنه +بوطنهم +بوطنيته +بوظائف +بوظائفها +بوظته +بوظهير +بوظيفة +بوعده +بوعدها +بوعودها +بوعي +بوعيه +بوعيها +بوف +بوفاة +بوفانيل +بوفرة +بوفورات +بوفون +بوفيدون +بوفيه +بوق +بوقت +بوقته +بوقف +بوقفات +بوقفة +بوقود +بوك +بوكر +بوكس +بوكلاء +بوكيمون +بول +بولاياتها +بولاية +بولب +بولدر +بولدن +بولدين +بولس +بولص +بولع +بولندا +بوله +بولونيا +بولي +بوليب +بوليبات +بوليتان +بوليتزر +بوليسية +بوليمة +بومباي +بون +بونابرت +بونتاجروسا +بوند +بونيتي +بوهمند +بوهيمي +بوهيمياً +بوهين +بوية +بويضات +بويك +بويليك +بوينت +بوينتا +بوينج +بويون +بى +بي +بيئات +بيئاته +بيئاتهم +بيئة +بيئتنا +بيئته +بيئتها +بيئتهم +بيئي +بيئيا +بيئياً +بيئية +بياء +بياترس +بياتريس +بياراتها +بيارق +بياض +بياضا +بياضاً +بياضه +بياضها +بياضهما +بيان +بيانا +بيانات +بياناته +بياناتها +بياناتهم +بياناتي +بياناً +بيانه +بيانها +بيانو +بيانًا +بيبرس +بيبلوس +بيبيس +بيت +بيتا +بيتان +بيتاهيدروكس +بيتاً +بيتحكم +بيتر +بيتروكوس +بيتروناس +بيتزاهت +بيتس +بيتك +بيتمان +بيتنا +بيته +بيتها +بيتهم +بيتهما +بيتي +بيتُ +بيثرو +بيجن +بيجوم +بيجين +بيد +بيدك +بيده +بيدها +بيدو +بيدي +بيدين +بيديه +بيديها +بير +بيران +بيرة +بيرتون +بيرج +بيرجر +بيرد +بيردي +بيرس +بيرم +بيرنارد +بيرو +بيروت +بيروتية +بيروكسيد +بيروكسيداز +بيرونيك +بيروي +بيري +بيريز +بيريس +بيريفوتشيك +بيزنس +بيزنطة +بيزنطي +بيزنطية +بيسا +بيسان +بيسر +بيسي +بيش +بيشاور +بيض +بيضا +بيضاء +بيضة +بيضها +بيضوي +بيطرانية +بيطرية +بيع +بيعت +بيعه +بيعها +بيعي +بيقين +بيك +بيكار +بيكاسو +بيكسل +بيكو +بيكون +بيكويث +بيل +بيلا +بيلاثكيت +بيلار +بيلامين +بيلوبس +بيلوز +بيمبي +بيمينه +بين +بينابيعه +بينات +بيناته +بينازير +بينالي +بينة +بينت +بينتويش +بينجمية +بيندرانوال +بينك +بينكم +بينما +بينمالايزال +بيننا +بينه +بينها +بينهم +بينهما +بينهن +بينوا +بيني +بينياً +بينية +بينَّا +بيهار +بيوبيلها +بيوت +بيوتا +بيوتات +بيوتاً +بيوتنا +بيوتها +بيوتهم +بيوتهن +بيوتي +بيوتيرات +بيوتيك +بيور +بيوسف +بيوسيا +بيوضها +بيولوجي +بيولوجيا +بيولوجية +بيوم +بيومين +بيونس +بيير +بيّنت +بًا +بَدَّلُوا +بَرَكة +بَعْضٍ +بَعْضُكُم +بَعْضُهُمْ +بُح +بُد +بُدًّا +بُذلت +بُضع +بُعد +بُعيد +بُعْد +بُني +بُنيت +بِالْمَعْرُوفِ +بِهِ +ة +ت +تآكل +تآلف +تآليف +تآمرية +تأبط +تأبه +تأبى +تأبي +تأبيد +تأبين +تأبينه +تأت +تأتى +تأتي +تأتيكم +تأتينا +تأتيه +تأثر +تأثرا +تأثراً +تأثرت +تأثره +تأثرها +تأثرهما +تأثروا +تأثيث +تأثير +تأثيرا +تأثيرات +تأثيراتها +تأثيراً +تأثيره +تأثيرها +تأثيريا +تأثيرية +تأثيرًا +تأثيرٌ +تأثّرت +تأثّري +تأثُّر +تأثُّراً +تأجير +تأجيل +تأخذ +تأخذك +تأخذني +تأخذه +تأخر +تأخرت +تأخرتم +تأخره +تأخير +تأخّر +تأدبت +تأديبه +تأدية +تأديتها +تأذي +تأرجح +تأرجحا +تأرجحات +تأرجحت +تأريخ +تأريخي +تأريخية +تأسس +تأسست +تأسستا +تأسوا +تأسيس +تأسيسا +تأسيسه +تأسيسها +تأسيسيًا +تأشيرات +تأشيرة +تأصلت +تأصيل +تأصيلاً +تأطير +تأقلم +تأكد +تأكدت +تأكل +تأكلها +تأكلهُ +تأكيد +تأكيدا +تأكيداً +تأكيدنا +تأكيـــد +تألف +تألق +تألقا +تألقت +تألقه +تألقًا +تألم +تألمت +تأليف +تأليفه +تأليفها +تأليفي +تألّف +تأمل +تأملات +تأملاته +تأملها +تأملهم +تأملوا +تأملي +تأملية +تأمليًّا +تأميم +تأمين +تأمينها +تأمّلها +تأنيب +تأنيبه +تأنيبي +تأنيث +تأهب +تأهل +تأهيل +تأهيلاً +تأوي +تأويل +تأويلات +تأييد +تأييدًا +تأّمل +تؤاخدنا +تؤاخذنا +تؤازره +تؤتي +تؤثر +تؤجل +تؤخذ +تؤخر +تؤدى +تؤدي +تؤذي +تؤذين +تؤرق +تؤرقه +تؤرقهم +تؤسس +تؤكد +تؤكده +تؤكـــد +تؤلف +تؤلمانني +تؤمن +تؤمنها +تؤهب +تؤهله +تؤهلهم +تؤويهم +تؤيد +تؤيدهم +تئن +تاء +تائه +تائهون +تاب +تابات +تابع +تابعا +تابعاً +تابعة +تابعت +تابعنا +تابعه +تابعوا +تابعين +تابعَ +تابلوهات +تابوا +تابوت +تابوتا +تابوتها +تابوتي +تاتشر +تاثيراته +تاثيراً +تاج +تاجر +تاجرا +تاجراً +تاجري +تاجوراء +تاخذ +تاخير +تاديوز +تارة +تارك +تاركا +تاركاً +تاركة +تاركين +تاركًا +تاريخ +تاريخا +تاريخاً +تاريخنا +تاريخه +تاريخها +تاريخهم +تاريخي +تاريخيا +تاريخياً +تاريخية +تاريخيته +تاريخين +تاريخيًا +تافه +تافهة +تاكسي +تاكيلا +تالفة +تالله +تاليان +تالياً +تالياًلتوجيه +تالية +تاليًا +تام +تاما +تامارا +تاماً +تامة +تامّاً +تانجه +تاه +تاون +تايبجي +تايبيه +تايلر +تايلند +تايلور +تايم +تايمز +تايوان +تب +تبا +تباب +تبادرها +تبادل +تبادلت +تبادلنا +تبادلينا +تبادلِ +تبارحه +تبارز +تبارك +تبارى +تباري +تباشير +تباطأت +تباطأتْ +تباطؤ +تباع +تباعا +تباعاً +تباعد +تبال +تباهي +تباين +تبايناً +تباينت +تبتدع +تبتسم +تبتسي +تبتعد +تبتلع +تبتلعها +تبث +تبثه +تبثها +تبح +تبحث +تبحثا +تبحثون +تبحثين +تبحر +تبحلق +تبخر +تبخرها +تبد +تبدأ +تبدت +تبدد +تبددت +تبدع +تبدل +تبدلات +تبدلت +تبدو +تبدي +تبديد +تبديل +تبديله +تبديها +تبدّت +تبدّل +تبدَّى +تبدُّل +تبذل +تبذلها +تبذير +تبرئة +تبرحني +تبرحه +تبرد +تبرر +تبرز +تبرزها +تبرع +تبرعات +تبرعتا +تبرق +تبرقان +تبريد +تبرير +تبريرها +تبرّم +تبزّ +تبسيط +تبشر +تبصر +تبصران +تبطئ +تبطن +تبع +تبعا +تبعات +تبعاته +تبعاتها +تبعاً +تبعته +تبعتها +تبعث +تبعثر +تبعثرت +تبعثها +تبعد +تبعه +تبعها +تبعية +تبعيتها +تبعًا +تبـني +تبق +تبقت +تبقوا +تبقى +تبقي +تبقيه +تبقّى +تبكي +تبلر +تبلل +تبللت +تبللني +تبلور +تبلورت +تبليط +تبنت +تبنته +تبنتها +تبنى +تبني +تبنيتها +تبنيه +تبنيها +تبنّى +تبهرني +تبهره +تبوء +تبوأت +تبوح +تبوك +تبويبها +تبي +تبياناً +تبيت +تبيح +تبيد +تبيع +تبيعه +تبيعها +تبين +تبينت +تبينوا +تبيّن +تبيِّن +تبِع +تبّاً +تبًّا +تت +تتآكل +تتآمر +تتأثر +تتأثَّر +تتأجج +تتأرجح +تتأكد +تتألف +تتألق +تتألم +تتأمل +تتأمَّل +تتابع +تتابعت +تتاح +تتالى +تتبادل +تتبارز +تتبارى +تتباعد +تتباهى +تتباهي +تتباين +تتبختر +تتبخر +تتبدد +تتبدل +تتبدى +تتبدّى +تتبع +تتبعت +تتبعثر +تتبعه +تتبعها +تتبعهم +تتبق +تتبلور +تتبناه +تتبناهما +تتبنى +تتبني +تتبنَّى +تتبوأ +تتبين +تتجاذب +تتجافى +تتجاهل +تتجاهلني +تتجاهلها +تتجاوب +تتجاور +تتجاوز +تتجاوزونها +تتجدد +تتجرع +تتجسد +تتجسس +تتجسّم +تتجلى +تتجلّى +تتجمع +تتجنب +تتجه +تتجول +تتح +تتحايل +تتحد +تتحداني +تتحدث +تتحدثان +تتحدثين +تتحدد +تتحرر +تتحرك +تتحركان +تتحرّك +تتحسس +تتحسسان +تتحسسها +تتحسن +تتحسّر +تتحسّس +تتحسَّس +تتحصّل +تتحطم +تتحفظ +تتحقق +تتحكم +تتحلل +تتحلى +تتحلَّى +تتحمس +تتحمل +تتحملها +تتحمّل +تتحول +تتحوّل +تتحوَّل +تتحين +تتخاصم +تتخاطفها +تتخبط +تتخبطان +تتخبّط +تتخذ +تتخذه +تتخذها +تتخرجوا +تتخصص +تتخضب +تتخطى +تتخفى +تتخلص +تتخلع +تتخلف +تتخلق +تتخلل +تتخللها +تتخلى +تتخلَّصي +تتخيل +تتخيله +تتداخل +تتدافع +تتدخل +تتدفق +تتدلى +تتدنى +تتذكر +تتذكرني +تتذكره +تتذكرون +تتر +تتراءى +تتراجع +تترادف +تتراص +تترافق +تتراكض +تتراكم +تتراوح +تتربع +تترتب +تترجم +تترجمه +تترجمون +تترجّانا +تتردد +تترددان +تترسب +تترصد +تترصدني +تترقب +تترك +تتركز +تتركني +تتركه +تتركها +تتركون +تتركي +تتركّز +تتزايد +تتزحزح +تتزوج +تتزوجني +تتزين +تتساءل +تتسابق +تتساحب +تتسارع +تتساقط +تتساوى +تتسبب +تتستروا +تتسخ +تتسخن +تتسرب +تتسرعي +تتسرّب +تتسع +تتسق +تتسلل +تتسلم +تتسم +تتسيّج +تتسَّبب +تتشابك +تتشابه +تتشارك +تتشبث +تتشظى +تتشقق +تتشكل +تتشكّل +تتصادم +تتصارع +تتصاعد +تتصالب +تتصالح +تتصحَّر +تتصدر +تتصدى +تتصدين +تتصدّرها +تتصرف +تتصف +تتصل +تتصوّره +تتضاءل +تتضاعف +تتضافر +تتضح +تتضخم +تتضرر +تتضمن +تتضمنه +تتضمّن +تتضمَّن +تتطابق +تتطاول +تتطاير +تتطلب +تتطلبه +تتطلبها +تتطلع +تتطلعان +تتطلعون +تتطهر +تتطور +تتطورالأعراض +تتظاهر +تتعابث +تتعارض +تتعاطف +تتعاظم +تتعالى +تتعامل +تتعاملين +تتعايش +تتعب +تتعبني +تتعثر +تتعجب +تتعداها +تتعدد +تتعدى +تتعدَّ +تتعرض +تتعرف +تتعرَّف +تتعسر +تتعشق +تتعطر +تتعفن +تتعقد +تتعكر +تتعلق +تتعلم +تتعمد +تتعملق +تتعنى +تتعهد +تتفاخر +تتفاداه +تتفاعل +تتفاقم +تتفاوت +تتفتت +تتفتح +تتفتق +تتفتّح +تتفحصان +تتفرج +تتفرع +تتفضلون +تتفق +تتقاتل +تتقارب +تتقاسم +تتقاسمه +تتقاطع +تتقافز +تتقبل +تتقبلها +تتقدم +تتقصى +تتقصّد +تتقلص +تتقمص +تتقمّص +تتقن +تتقيد +تتكاتف +تتكاثر +تتكاثف +تتكالب +تتكامل +تتكبد +تتكبدها +تتكتّل +تتكثف +تتكدس +تتكرر +تتكفل +تتكلم +تتكلمون +تتكهن +تتكون +تتكيس +تتكيف +تتلاءم +تتلاحق +تتلاشى +تتلاشي +تتلاطم +تتلاقى +تتلخص +تتلف +تتلفها +تتلقاها +تتلقفك +تتلقى +تتلقي +تتلمذ +تتلمذت +تتلمس +تتلمسها +تتلمَّس +تتلى +تتلْمُذي +تتم +تتماثل +تتماسك +تتماشى +تتماهى +تتمايز +تتمايل +تتمتع +تتمثل +تتمحور +تتمخض +تتمدد +تتمركز +تتمزق +تتمسك +تتمشى +تتمكن +تتملص +تتملكه +تتملَّص +تتممه +تتمناها +تتمنى +تتمنّى +تتمهل +تتميز +تتمّ +تتناءى +تتناثر +تتناجى +تتناحر +تتنازل +تتنازلين +تتناسب +تتناقص +تتناقض +تتنامى +تتنامي +تتناهى +تتناول +تتنبأ +تتنزه +تتنصت +تتنكر +تتنوع +تتهادى +تتهاوى +تتهدل +تتهدَّد +تتهرب +تتهربي +تتهكم +تتهمه +تتهمون +تتهيأ +تتهيّأ +تتواءم +تتواجد +تتوارث +تتوارى +تتوازن +تتواصل +تتوافر +تتوالد +تتوالى +تتوانى +تتوتر +تتوج +تتوجب +تتوجه +تتوحد +تتوخى +تتورم +تتوزع +تتوسط +تتوسطها +تتوسع +تتوضع +تتوفر +تتوق +تتوقع +تتوقف +تتولد +تتولى +تتولي +تتوهج +تتوهّج +تتويجاً +تتيح +تتيحه +تتيحها +تتّحسّن +تثار +تثاقف +تثاقل +تثاقلاً +تثاقلية +تثب +تثبت +تثبتين +تثبط +تثبيت +تثبيتا +تثبيته +تثبيط +تثرى +تثري +تثقب +تثقبه +تثقف +تثقل +تثقي +تثقيبه +تثقيف +تثقيفي +تثمر +تثمره +تثني +تثور +تثير +تثيره +تثيرها +تثيرهم +تجاذب +تجاذبوني +تجار +تجاراً +تجارب +تجاربنا +تجاربه +تجاربها +تجاربى +تجاربي +تجارة +تجارةٌ +تجارته +تجارتها +تجاره +تجارى +تجاري +تجارياً +تجارية +تجاعيد +تجالسه +تجانس +تجانسه +تجاه +تجاهك +تجاهل +تجاهلاً +تجاهلت +تجاهلنا +تجاهله +تجاهلها +تجاهلوا +تجاهلوه +تجاهنا +تجاهه +تجاهها +تجاوب +تجاوباً +تجاور +تجاورت +تجاوز +تجاوزا +تجاوزات +تجاوزت +تجاوزتها +تجاوزني +تجاوزه +تجاوزها +تجاوزوا +تجاوزوها +تجاويفه +تجب +تجبر +تجبهه +تجتاح +تجتاز +تجتذب +تجتمع +تجتمعان +تجد +تجددت +تجددها +تجدر +تجدك +تجدني +تجده +تجدها +تجدهم +تجدوا +تجدي +تجديد +تجديدي +تجديديا +تجديدية +تجذب +تجذبه +تجذر +تجر +تجرأ +تجرأت +تجرؤ +تجرب +تجربة +تجربةً +تجربتنا +تجربته +تجربتها +تجربتهم +تجربتي +تجرثم +تجرش +تجرفه +تجرها +تجرى +تجري +تجريب +تجريبها +تجريبي +تجريبياً +تجريبية +تجريبيّ +تجريح +تجريد +تجريده +تجريدي +تجريدية +تجريها +تجرّب +تجزئة +تجزع +تجسد +تجسدت +تجسر +تجسس +تجسسية +تجسسًا +تجسيد +تجسيدا +تجسيداً +تجسيدها +تجسيدًا +تجسيم +تجسّد +تجسّده +تجسّدها +تجسّسي +تجشأ +تجشمت +تجعل +تجعلك +تجعلنا +تجعلني +تجعله +تجعلها +تجعلهم +تجـريبية +تجف +تجفل +تجفيف +تجفيفه +تجفيفها +تجفّف +تجفُّ +تجل +تجلب +تجلبه +تجلبها +تجلت +تجلس +تجلسان +تجلى +تجلي +تجليات +تجلياته +تجلياتها +تجليد +تجليّات +تجليّاته +تجلّت +تجلَّت +تجمع +تجمعات +تجمعاته +تجمعاتها +تجمعت +تجمعنا +تجمعني +تجمعها +تجمعهم +تجمعوا +تجميد +تجميع +تجميعا +تجميل +تجميلي +تجميليا +تجميلية +تجمّع +تجمّعات +تجمّعنا +تجمّعوا +تجمَّع +تجنب +تجنبا +تجنباً +تجنبت +تجنبك +تجنبها +تجنبهم +تجنى +تجني +تجنيد +تجنّبا +تجنّبنا +تجهر +تجهز +تجهل +تجهلها +تجهيز +تجهيزات +تجهيزاته +تجهيزاتهما +تجهيزه +تجهيزها +تجهّم +تجوالنا +تجواله +تجوالي +تجوب +تجوبان +تجوز +تجوس +تجول +تجولت +تجولنا +تجويد +تجويدي +تجويف +تجوّلت +تجيء +تجيب +تجيد +تجيده +تجيدها +تجيزه +تجّار +تجّمعات +تحابي +تحات +تحادث +تحاذر +تحارب +تحاشي +تحاشيه +تحاصر +تحافظ +تحاكم +تحاكى +تحاكي +تحالف +تحالفاتها +تحالفاً +تحامل +تحاملت +تحاور +تحاورت +تحاورها +تحاول +تحايل +تحب +تحبب +تحبطه +تحبه +تحبها +تحبو +تحبّذ +تحبّه +تحت +تحتاج +تحتاجه +تحتاجها +تحتاجين +تحتال +تحتج +تحترف +تحترق +تحترم +تحترمه +تحتشد +تحتضن +تحتضنني +تحتضنه +تحتضنها +تحتضنهم +تحتفظ +تحتقر +تحتل +تحتلّ +تحتمس +تحتمل +تحتملهم +تحتمها +تحتمي +تحتنا +تحته +تحتها +تحتهم +تحتهما +تحتوى +تحتوي +تحتويه +تحتويها +تحتي +تحتية +تحتَ +تحث +تحثنا +تحجب +تحجز +تحجل +تحجيم +تحجيمها +تحد +تحداهم +تحدث +تحدثت +تحدثتم +تحدثنا +تحدثني +تحدثه +تحدثها +تحدثوا +تحدثونا +تحدد +تحددت +تحدده +تحددها +تحدر +تحدق +تحدقان +تحدو +تحدونا +تحدوه +تحدى +تحدي +تحديا +تحديات +تحدياً +تحديت +تحديث +تحديثات +تحديثي +تحديد +تحديدا +تحديداً +تحديده +تحديدها +تحديدي +تحديقهما +تحديًا +تحدٍ +تحدّث +تحدّثت +تحدّثنا +تحدّق +تحدّياً +تحدٍّ +تحدَّث +تحذر +تحذرني +تحذو +تحذير +تحذيرا +تحذيرات +تحذيراتنا +تحذيره +تحذّر +تحرجا +تحرر +تحررت +تحررني +تحررها +تحررهما +تحررية +تحرس +تحرسنا +تحرص +تحرق +تحرقه +تحرك +تحركاتها +تحركاتهم +تحركت +تحركنا +تحرم +تحري +تحرير +تحريرة +تحريرصحيفة +تحريره +تحريرها +تحريرية +تحريض +تحريضات +تحريضاً +تحريضهم +تحريفه +تحريك +تحريم +تحريمات +تحريماً +تحرّراً +تحرّرت +تحرّك +تحرّكت +تحرّكه +تحرَّكت +تحزن +تحزني +تحس +تحسب +تحسبا +تحسباً +تحسبهم +تحسس +تحسسي +تحسسية +تحسن +تحسنا +تحسون +تحسين +تحسينه +تحسينها +تحسينيًا +تحسَّست +تحسُّباً +تحشر +تحشرين +تحصد +تحصل +تحصلون +تحصلَ +تحصى +تحصيل +تحصيلهم +تحصيلي +تحصينات +تحصيناته +تحصينها +تحصّن +تحض +تحضر +تحضير +تحضيرها +تحط +تحطان +تحطم +تحطمت +تحطمها +تحطيم +تحطيمه +تحطيمي +تحطّم +تحظ +تحظر +تحظى +تحظي +تحـتاج +تحـتل +تحـتوى +تحـظي +تحـفيز +تحـقق +تحـقيق +تحـقيقاً +تحف +تحفة +تحفر +تحفرها +تحفز +تحفزنا +تحفظ +تحفظاً +تحفظه +تحفظها +تحفل +تحفهم +تحفيز +تحفيزاً +تحفيظ +تحفّ +تحفّظت +تحقق +تحققت +تحققه +تحققها +تحقن +تحقيق +تحقيقا +تحقيقات +تحقيقاً +تحقيقه +تحقيقها +تحقيقي +تحقيقًا +تحقّق +تحقّقها +تحكم +تحكمه +تحكمها +تحكموا +تحكي +تحكيم +تحل +تحلــل +تحلق +تحلقوا +تحلل +تحللت +تحلله +تحلم +تحلى +تحلية +تحليق +تحليل +تحليلاتهم +تحليلاً +تحليلنا +تحليله +تحليلها +تحليلي +تحليلية +تحلّق +تحلَّم +تحمد +تحمر +تحمسوا +تحمل +تحملا +تحملت +تحملنا +تحمله +تحملها +تحملهم +تحملهما +تحمى +تحمي +تحميل +تحميها +تحمّل +تحمّلت +تحمّلها +تحمُّل +تحن +تحنية +تحور +تحول +تحولا +تحولات +تحولاتها +تحولاً +تحولت +تحولها +تحولهم +تحولوا +تحوي +تحويد +تحوير +تحويل +تحويله +تحويلها +تحويه +تحويها +تحوّل +تحوّلت +تحوّلنا +تحوّله +تحوّلي +تحوُّل +تحيا +تحياه +تحياها +تحية +تحيتها +تحيد +تحيروا +تحيز +تحيزها +تحيط +تحيطها +تحيق +تحيك +تحيلها +تحين +تحييد +تخاذل +تخاصم +تخاطب +تخاف +تخافي +تخالطه +تخالف +تخبئ +تخبر +تخبرنا +تخبرني +تخبره +تخبريني +تخبطها +تخبو +تختار +تختاره +تختال +تختبئ +تختبر +تختتم +تخترق +تخترقها +تختزل +تختزلهما +تختزن +تختزنها +تختص +تختصر +تختفي +تختل +تختلج +تختلس +تختلط +تختلف +تختلقها +تختم +تختنق +تخثر +تخثره +تخجلين +تخدش +تخدم +تخدمها +تخذل +تخذله +تخرب +تخرج +تخرجت +تخرجتُ +تخرجك +تخرجكم +تخرجه +تخرجهم +تخرجوا +تخرجي +تخرجين +تخريب +تخريبها +تخريبي +تخريج +تخريجه +تخريش +تخرّجت +تخزن +تخزه +تخزين +تخزينها +تخسر +تخشى +تخشي +تخص +تخصص +تخصصات +تخصصاتهم +تخصصاً +تخصصت +تخصصه +تخصصها +تخصصي +تخصصية +تخصها +تخصهم +تخصيب +تخصيص +تخصيصاً +تخصيصه +تخصيصها +تخصّه +تخضبن +تخضر +تخضع +تخط +تخطأ +تخطئ +تخطئها +تخطاني +تخطب +تخطت +تخطر +تخطط +تخططون +تخطف +تخطو +تخطى +تخطي +تخطيط +تخطيطا +تخطيطاً +تخطيطي +تخطّيها +تخف +تخفت +تخفض +تخفف +تخففا +تخففها +تخفى +تخفي +تخفيض +تخفيضات +تخفيف +تخفيفا +تخفيه +تخفّ +تخل +تخلب +تخلخل +تخلص +تخلصت +تخلصه +تخلط +تخلف +تخلفت +تخلفنا +تخلفهم +تخلفوا +تخلق +تخلل +تخلله +تخلو +تخلى +تخلي +تخليا +تخليد +تخليدا +تخليداً +تخليص +تخليصه +تخليق +تخليقه +تخلينا +تخليه +تخلّ +تخلّت +تخلّص +تخلّع +تخلّف +تخلّفتُ +تخلَّص +تخلِّصنا +تخلِّصني +تخمد +تخمين +تخنق +تخني +تخوض +تخوضه +تخوضها +تخوف +تخوفات +تخوفهم +تخوفي +تخول +تخوله +تخوم +تخومها +تخون +تخونني +تخونها +تخيب +تخيفه +تخيل +تخيلاتنا +تخيلت +تخيلته +تخيلها +تخيلي +تخيلّتُ +تدابير +تداخل +تداخلت +تداخلها +تدار +تدارسها +تدارك +تداريه +تداعى +تداعي +تداعيات +تداعياته +تدافع +تدافعناه +تداول +تداولاً +تداولها +تداولوا +تدب +تدبر +تدبرنا +تدبير +تدبيرها +تدبّرها +تدجيل +تدجين +تدجينها +تدخل +تدخلت +تدخله +تدخلها +تدخين +تدخّل +تدخّلاً +تدر +تدرب +تدربي +تدرج +تدرجت +تدرس +تدرسنا +تدرك +تدركه +تدره +تدري +تدريب +تدريبا +تدريبات +تدريباً +تدريبه +تدريبها +تدريبهم +تدريبي +تدريبية +تدريبًا +تدريجي +تدريجيا +تدريجياً +تدريجيًا +تدريجيًّا +تدريس +تدريسا +تدريساً +تدريسه +تدريسها +تدريسهم +تدرّجت +تدرّس +تدش +تدشين +تدشينها +تدع +تدعم +تدعمها +تدعه +تدعها +تدعو +تدعونا +تدعوني +تدعى +تدعي +تدعيم +تدعيمه +تدعيمها +تدفئ +تدفع +تدفعني +تدفعه +تدفعها +تدفعهم +تدفق +تدفقات +تدفقاً +تدفقت +تدفقها +تدفن +تدفنها +تدق +تدقق +تدقيق +تدقيقها +تدكُّ +تدل +تدلت +تدله +تدلها +تدليك +تدليه +تدلُّه +تدم +تدمر +تدمرت +تدمرها +تدمير +تدميرية +تدمّر +تدن +تدنو +تدني +تدهش +تدهشنا +تدهور +تدهوراً +تدهورت +تدهورها +تدهورًا +تدور +تدوران +تدورُ +تدوس +تدوم +تدوير +تدويره +تدويرها +تدوين +تدوّي +تدير +تديره +تديرها +تدين +تدينجتون +تديّناً +تدّعين +تذاب +تذاع +تذاكر +تذاكرهم +تذبذب +تذرف +تذكاراً +تذكارى +تذكاري +تذكارية +تذكر +تذكرة +تذكرت +تذكرتني +تذكرته +تذكرنا +تذكرني +تذكره +تذكرها +تذكري +تذكرين +تذكيرهم +تذكّر +تذكّرها +تذكَّر +تذلل +تذللك +تذليل +تذمر +تذنبوا +تذهب +تذهبي +تذهبين +تذوب +تذوق +تذوقه +تذيبه +تذيعهما +تر +ترأس +ترأست +ترأستها +ترأسه +ترأسهم +تراءى +تراب +ترابه +ترابها +ترابي +ترابية +تراتبية +تراتيله +تراث +تراثاً +تراثنا +تراثه +تراثها +تراثهم +تراثي +تراثيا +تراثياً +تراثية +تراثيين +تراثيًّا +تراجان +تراجع +تراجعاً +تراجعت +تراجعه +تراجعوا +تراجم +تراجمه +تراجيديا +تراحم +تراحمي +تراخيص +ترادفها +تراصت +تراعي +ترافق +ترافقت +ترافقتُ +ترافقنا +ترافقني +ترافيل +تراق +تراقب +تراقبان +تراقبه +تراكض +تراكضت +تراكم +تراكما +تراكمت +تراكمه +تراكمها +تراكمية +تراكميٌّ +تراكي +تراكيب +تراكيبها +ترام +ترانزستورات +تراني +تراه +تراها +تراهم +تراوحت +تراود +تربة +تربت +تربتها +تربح +تربص +تربط +تربطاننا +تربطك +تربطنا +تربطه +تربطها +تربطهم +تربنة +تربوية +تربويًا +تربى +تربي +تربية +تربيةِ +تربيت +تربيته +تربيتها +تربيتي +تربيتُ +تربّى +ترتاح +ترتاحون +ترتاد +ترتب +ترتبت +ترتبط +ترتبك +ترتج +ترتجف +ترتجفان +ترتد +ترتدي +ترتديه +ترتسم +ترتضي +ترتطم +ترتعد +ترتعش +ترتفع +ترتقي +ترتكب +ترتكز +ترتكن +ترتوي +ترتيب +ترتيبه +ترتيبها +ترتّب +ترثي +ترجع +ترجم +ترجمات +ترجمان +ترجمة +ترجمت +ترجمتم +ترجمته +ترجمتها +ترجمتهما +ترجمتي +ترجمه +ترجمها +ترجموا +ترجو +ترجيح +ترحال +ترحالي +ترحب +ترحل +ترحلين +ترحم +ترحمه +ترحيب +ترحيبا +ترحيباً +ترحيبي +ترحيبياً +ترحيبية +ترحيل +ترحيله +ترحيلها +ترخيص +ترخيصا +ترد +تردد +ترددا +ترددات +تردداتها +ترددت +ترددنا +تردده +ترددهم +تردف +تردمها +تردي +ترديد +ترديدها +تردّ +تردّد +تردّيه +ترزح +ترسانة +ترسب +ترسخ +ترسخت +ترسل +ترسلها +ترسم +ترسمت +ترسمن +ترسمه +ترسمها +ترسمي +ترسي +ترسيخ +ترسَّخت +ترسُّب +ترش +ترشح +ترشيح +ترشيحها +ترشيد +ترصد +ترصدان +ترصده +ترصدها +ترض +ترضى +ترضي +ترطب +ترطيب +ترعاها +ترعة +ترعرع +ترعرعت +ترعى +ترعينه +ترف +ترفاً +ترفة +ترفدها +ترفرف +ترفض +ترفضني +ترفع +ترفعه +ترفل +ترفيه +ترفيهى +ترفيهياً +ترفيهية +ترفًا +ترفّع +ترفّعت +ترقب +ترقبت +ترقبه +ترقبوا +ترقد +ترقص +ترقق +ترقى +ترقية +ترقيته +ترقّّصه +ترك +تركاه +تركب +تركت +تركتك +تركتني +تركته +تركتها +تركتهما +تركتُ +تركز +تركض +تركن +تركنا +تركناه +تركني +تركه +تركها +تركهما +تركوا +تركوه +تركوها +تركى +تركي +تركيا +تركيب +تركيبات +تركيباته +تركيباتها +تركيبة +تركيبتها +تركيبه +تركيبها +تركيبي +تركيبية +تركية +تركيز +تركيزا +تركيزات +تركيزاً +تركيزه +تركيزي +ترمز +ترمش +ترمي +ترميم +ترميمات +ترميمه +ترميمها +ترميمي +ترنح +ترنو +ترهل +تروج +ترودجيل +ترودوس +تروضه +تروق +ترون +تروى +تروي +ترويجها +ترويجية +ترويس +ترويها +ترى +تري +ترياق +تريبيون +تريد +تريدالإنتحار +تريدنا +تريدني +تريده +تريدها +تريدون +تريدين +تريزي +تريسامينا +تريليون +تريليونات +ترين +تريننا +تريني +تريها +تزاحم +تزاد +تزال +تزامن +تزامنت +تزاوج +تزايد +تزايداً +تزايدت +تزايدهن +تزجيتها +تزحزح +تزحف +تزخر +تزد +تزداد +تزدادين +تزدان +تزدحم +تزدرد +تزدهر +تزدهي +تزرع +تزعج +تزعجني +تزعجه +تزعجهم +تزعزع +تزعم +تزكمها +تزل +تزلج +تزلزل +تزمّتنا +تزنر +تزهر +تزهو +تزوج +تزوجت +تزوجتكِ +تزوجن +تزوجنا +تزوجها +تزود +تزودنا +تزور +تزول +تزويجه +تزويد +تزويدها +تزويدهم +تزويدي +تزوّد +تزوّدنا +تزيح +تزيد +تزيف +تزين +تزينها +تزييف +تزيين +تزيّنه +تسأل +تسألني +تسأله +تسألها +تساءل +تساءلت +تساءلوا +تساؤل +تساؤلا +تساؤلات +تساؤلاتها +تسابق +تسابقت +تسابقني +تسابقها +تسارع +تساعد +تساعدنا +تساعدني +تساعده +تساعدها +تساعدهم +تساعدوا +تساعديني +تسافر +تسافران +تساقط +تساقطت +تسامح +تسامحا +تسامي +تساندها +تساهم +تساوه +تساوى +تساوي +تساير +تسبب +تسببا +تسببت +تسببتوا +تسببه +تسببها +تسبح +تسبق +تسبقها +تسبه +تسبوا +تسبّبت +تسبِّب +تستأثر +تستأذن +تستأهل +تستأهلها +تستبطن +تستبعد +تستبيح +تستتب +تستتبع +تستثمر +تستثن +تستثنى +تستثيرها +تستجب +تستجد +تستجدي +تستجدّ +تستجمع +تستجيب +تستجير +تستحق +تستحقان +تستحقه +تستحقها +تستحكم +تستحوذ +تستحي +تستحيل +تستخدم +تستخدمه +تستخدمها +تستخدمون +تستخدمينها +تستدرك +تستدعي +تستدعيه +تستدير +تستذكر +تستر +تسترجع +تستردفَهُ +تسترها +تستريح +تستسلم +تستشعر +تستصرخ +تستضيف +تستضيفها +تستضيفهم +تستطع +تستطيب +تستطيع +تستطيعان +تستطيعون +تستطيعي +تستطيعين +تستطيل +تستعجل +تستعد +تستعدان +تستعدي +تستعرض +تستعرضه +تستعصي +تستعمل +تستعمله +تستعيد +تستعيده +تستعير +تستعين +تستفحل +تستفسر +تستفيد +تستقبل +تستقبلنا +تستقبله +تستقر +تستقطب +تستقل +تستقيل +تستقيم +تستكشف +تستكمل +تستكين +تستلزم +تستلقي +تستمتع +تستمد +تستمر +تستمرئ +تستمع +تستمعوا +تستنتج +تستند +تستنشق +تستهدف +تستهدفونه +تستهلك +تستهلكه +تستهن +تستهوي +تستهوينا +تستهويني +تستهويه +تستهويها +تستوجب +تستوحى +تستورد +تستورده +تستوطن +تستوعب +تستوعبني +تستوف +تستوقفك +تستوقفها +تستولون +تستولي +تستيقظ +تسجل +تسجلها +تسجيل +تسجيلات +تسجيلاتنا +تسجيله +تسجيلها +تسجيليا +تسجيلية +تسحب +تسحبها +تسحر +تسخر +تسخير +تسخين +تسخينها +تسد +تسديد +تسر +تسرب +تسربات +تسرباً +تسربت +تسربها +تسرح +تسرحي +تسرع +تسرق +تسري +تسريحة +تسريحه +تسريع +تسرّب +تسرّبات +تسرّبت +تسرَّب +تسطع +تسع +تسعة +تسعمائة +تسعني +تسعون +تسعى +تسعين +تسعينيات +تسـاعدني +تسقط +تسكب +تسكعية +تسكن +تسكنني +تسكنه +تسكنها +تسكين +تسلح +تسلحوا +تسلخات +تسلسلها +تسلط +تسلق +تسلك +تسلكها +تسلل +تسللت +تسلم +تسلمت +تسلمته +تسلمنا +تسلمني +تسلية +تسليت +تسليح +تسليحه +تسليحها +تسليط +تسليطها +تسليم +تسليمه +تسليمها +تسلّط +تسلّم +تسمح +تسمحان +تسمحي +تسمحين +تسمرت +تسمع +تسمعها +تسمعوا +تسمك +تسمم +تسمى +تسمية +تسميته +تسميتها +تسميح +تسميد +تسميعه +تسميم +تسمينها +تسميه +تسميها +تسمّم +تسمّى +تسمّيه +تسنده +تسنم +تسنى +تسهر +تسهرون +تسهل +تسهم +تسهيل +تسهيلا +تسهيلات +تسهيلاته +تسهيلاً +تسو +تسود +تسودان +تسوق +تسول +تسولف +تسونامي +تسوية +تسويد +تسويق +تسويقنا +تسويقها +تسويقي +تسويقية +تسي +تسيء +تسيد +تسير +تسيطر +تسيل +تسيىء +تسيير +تسييس +تسيّر +تشأ +تشاء +تشاءمت +تشابك +تشابكت +تشابه +تشابها +تشابهًا +تشاد +تشارتر +تشارف +تشارك +تشاركا +تشاركنا +تشاركه +تشاركها +تشاركيني +تشارلز +تشارلس +تشارلي +تشاكر +تشامب +تشاندرا +تشاهد +تشاهده +تشاهدوه +تشايلد +تشبثي +تشبع +تشبعوا +تشبه +تشبهان +تشبهني +تشبهه +تشبهها +تشبيهها +تشتت +تشتد +تشترط +تشترك +تشتري +تشتعل +تشتم +تشتمل +تشتملان +تشتهر +تشتهي +تشتيت +تشتيتها +تشجع +تشجعت +تشجعنا +تشجعه +تشجيع +تشجيعاً +تشجيعهما +تشجيعية +تشجيعًا +تشجّع +تشجِّع +تشخص +تشخيص +تشخيصات +تشخيصه +تشخيصية +تشد +تشدد +تشدني +تشده +تشدها +تشدهم +تشديد +تشدّ +تشذ +تشذي +تشذيب +تشذيبها +تشرب +تشرح +تشرد +تشردَ +تشرشل +تشرف +تشرنوبيل +تشريد +تشريع +تشريعات +تشريعاته +تشريعًا +تشريف +تشرين +تشرّد +تشع +تشعبا +تشعباً +تشعبت +تشعر +تشعره +تشفر +تشفع +تشفى +تشفي +تشق +تشقق +تشققت +تشقى +تشقّ +تشك +تشكل +تشكلت +تشكو +تشكيك +تشكيل +تشكيلات +تشكيلاً +تشكيلة +تشكيله +تشكيلها +تشكيلي +تشكيلياً +تشكيلية +تشكيليون +تشكيليين +تشكّل +تشكّلت +تشل +تشم +تشمل +تشمله +تشميع +تشمين +تشمُّ +تشن +تشنج +تشنجات +تشنها +تشهد +تشهدان +تشهده +تشهدها +تشهر +تشوب +تشوبها +تشوبي +تشوشا +تشوفه +تشوه +تشوها +تشوهات +تشوهت +تشويش +تشويق +تشويه +تشويهه +تشوّه +تشوّهات +تشىيد +تشي +تشيخ +تشيد +تشير +تشيرنوبل +تشيرنوشيفسكي +تشيع +تشيعها +تشيكوف +تشيكيا +تشيلي +تشين +تشيو +تشييد +تشييع +تصاب +تصاحب +تصاحبه +تصاحبها +تصادر +تصادف +تصادفت +تصادفنا +تصادفه +تصادم +تصادمات +تصارح +تصارع +تصارعا +تصاريح +تصاعد +تصاعدت +تصاعدي +تصالح +تصالحنا +تصب +تصبح +تصبحون +تصبحي +تصبها +تصح +تصحب +تصحبه +تصحيح +تصحيحها +تصحُ +تصحّر +تصحَّرت +تصخب +تصدأ +تصدت +تصدح +تصدحُ +تصدر +تصدران +تصدرت +تصدرته +تصدره +تصدرها +تصدعات +تصدق +تصدقوني +تصدم +تصدوا +تصدى +تصدير +تصديرها +تصديرية +تصديق +تصدّر +تصدّق +تصدّقهم +تصر +تصرخ +تصرف +تصرفات +تصرفاتنا +تصرفاته +تصرفاً +تصرفهم +تصريح +تصريحا +تصريحات +تصريحاً +تصريحه +تصريف +تصريفه +تصرّ +تصرّفاتها +تصطاده +تصطادها +تصطدم +تصطرع +تصطف +تصطفون +تصعب +تصعد +تصعدان +تصعقهم +تصعيد +تصف +تصفح +تصفحنا +تصفق +تصفه +تصفون +تصفي +تصفيات +تصفية +تصقل +تصل +تصلان +تصلب +تصلح +تصلنا +تصله +تصلي +تصليح +تصمت +تصمد +تصميم +تصميمه +تصميمها +تصميمي +تصميمين +تصميمًا +تصنع +تصنعه +تصنعها +تصنعي +تصنف +تصنيع +تصنيعا +تصنيعه +تصنيعها +تصنيعي +تصنيعية +تصنيف +تصنيفا +تصنيفات +تصنيفها +تصنيفهم +تصنّفين +تصور +تصورا +تصورات +تصوراتنا +تصوراته +تصوراً +تصورته +تصورنا +تصوره +تصورهم +تصوروا +تصوري +تصورًا +تصوفهم +تصوفية +تصوير +تصويرنا +تصويره +تصويرها +تصويري +تصويرية +تصوّر +تصوّرت +تصوّرنا +تصوّره +تصوّروا +تصوَّرته +تصيب +تصيبه +تصيبها +تصيبهم +تصيح +تصير +تصيرين +تصيّد +تضاء +تضاءلت +تضاؤل +تضاجع +تضاربت +تضاربوا +تضاريس +تضاريسه +تضاعف +تضاعفت +تضاف +تضافر +تضافرت +تضامن +تضامنا +تضامنه +تضامنًا +تضاهى +تضاهي +تضاهيها +تضايق +تضايقت +تضبط +تضبطها +تضجر +تضحك +تضحكوا +تضحكين +تضحي +تضحيات +تضحية +تضخم +تضخمت +تضخمها +تضخّم +تضخّه +تضر +تضرب +تضررًا +تضرع +تضره +تضرها +تضرّرت +تضطر +تضطرم +تضطلع +تضع +تضعضعه +تضعنا +تضعه +تضعها +تضعوا +تضفي +تضليل +تضم +تضمن +تضمنا +تضمنت +تضمنتها +تضمنتهم +تضمنه +تضمنها +تضمه +تضمها +تضمهم +تضميد +تضمين +تضميني +تضوى +تضيء +تضيئها +تضيع +تضيف +تضيق +تضيقها +تضييق +تضييقا +تضُّمنا +تطأ +تطابق +تطابقاً +تطارد +تطاردهم +تطاق +تطال +تطالب +تطالع +تطالعنا +تطالهم +تطاول +تطايرت +تطايره +تطبع +تطبعها +تطبق +تطبقها +تطبيع +تطبيق +تطبيقا +تطبيقات +تطبيقاته +تطبيقاتها +تطبيقه +تطبيقها +تطبيقي +تطبيقية +تطرأ +تطرب +تطرح +تطرحه +تطرحها +تطرز +تطرف +تطرق +تطرقوا +تطريبية +تطريز +تطعمه +تطعمها +تطعيم +تطعيمها +تطفئوه +تطفو +تطل +تطلب +تطلبين +تطلع +تطلعات +تطلعاتكم +تطلعاته +تطلعت +تطلعوا +تطلق +تطلقه +تطلقها +تطلّ +تطلّبت +تطلّون +تطمئن +تطمح +تطمسه +تطن +تطهرت +تطهير +تطور +تطورا +تطورات +تطوراً +تطورت +تطوره +تطورها +تطورية +تطورًا +تطوعي +تطوعًا +تطوف +تطوفان +تطوقها +تطول +تطوله +تطوى +تطوىر +تطوي +تطوير +تطويرا +تطويراً +تطويرها +تطويرى +تطويرية +تطويع +تطويعه +تطوّر +تطوّرالحمّى +تطوّرت +تطوّقها +تطير +تطيران +تطيش +تطيق +تطيقه +تطيقها +تطيل +تظاهر +تظاهروا +تظل +تظللهم +تظليل +تظلّها +تظن +تظنني +تظنين +تظنِّين +تظهر +تظهران +تعابير +تعابيره +تعاتبني +تعاجله +تعاد +تعادل +تعادلها +تعارض +تعارضا +تعارضاتها +تعارضت +تعارضنها +تعارف +تعاريف +تعاسة +تعاسيف +تعاطاه +تعاطف +تعاطفاً +تعاطفها +تعاطي +تعاظم +تعاظماً +تعاف +تعافه +تعاقب +تعاقبت +تعاقبني +تعاقد +تعاقدات +تعاقدي +تعاقدية +تعال +تعالا +تعالت +تعالج +تعالوا +تعالى +تعالي +تعاليم +تعاليمه +تعالَيْ +تعامل +تعاملاتها +تعاملت +تعاملنا +تعاملني +تعامله +تعاملها +تعاملي +تعاندها +تعاني +تعانين +تعانيه +تعانيها +تعاود +تعاوده +تعاون +تعاونوا +تعاونيات +تعاونية +تعايش +تعب +تعبأ +تعبئة +تعبئته +تعبئتها +تعبئين +تعبا +تعبان +تعبت +تعبتا +تعبد +تعبر +تعبق +تعبك +تعبكَ +تعبنا +تعبي +تعبير +تعبيرا +تعبيرات +تعبيراتها +تعبيراً +تعبيره +تعبيريا +تعبيرية +تعبّر +تعتبر +تعتبران +تعتبره +تعتبرها +تعتبرونها +تعتبرين +تعتبريني +تعتدي +تعترض +تعترف +تعتري +تعتريهم +تعتز +تعتزم +تعتزّ +تعتقد +تعتقدون +تعتقدين +تعتلي +تعتليه +تعتمد +تعتمده +تعتملان +تعتنق +تعتني +تعثر +تعثّر +تعج +تعجب +تعجبت +تعجبنا +تعجبه +تعجز +تعجن +تعجيزية +تعجّ +تعد +تعداد +تعداده +تعدادها +تعدادهم +تعدت +تعدتهما +تعدد +تعددت +تعددها +تعددية +تعدكم +تعدل +تعدها +تعدو +تعدى +تعدي +تعديد +تعديل +تعديلات +تعديله +تعديلها +تعديني +تعدّ +تعدّت +تعدّدها +تعدّك +تعذبوا +تعذر +تعذرني +تعذيب +تعذيبهم +تعر +تعرب +تعرج +تعرض +تعرضا +تعرضاً +تعرضت +تعرضنا +تعرضه +تعرضها +تعرضهم +تعرضوا +تعرف +تعرفت +تعرفنا +تعرفني +تعرفه +تعرفها +تعرفهم +تعرفون +تعرفين +تعرفينها +تعرقل +تعريب +تعرية +تعريتها +تعريض +تعريضها +تعريف +تعريفا +تعريفات +تعريفاته +تعريفاً +تعريفنا +تعريفه +تعريفها +تعريفهن +تعريفياً +تعريفية +تعرّض +تعرّضاً +تعرّضت +تعرّضه +تعرّف +تعرَّضت +تعرَّف +تعرِّض +تعرِّف +تعزز +تعززت +تعزف +تعزله +تعزية +تعزير +تعزيز +تعزيزا +تعزيزاً +تعسر +تعسروا +تعسفي +تعش +تعشش +تعشعش +تعشق +تعشيق +تعصب +تعصبه +تعصبي +تعصر +تعصف +تعصّب +تعضد +تعط +تعطش +تعطشهم +تعطل +تعطلت +تعطه +تعطوننا +تعطى +تعطي +تعطيك +تعطيل +تعطيني +تعطيه +تعطيها +تعطّش +تعظم +تعظيم +تعــطيك +تعفر +تعفن +تعقب +تعقبه +تعقبها +تعقد +تعقدت +تعقده +تعقدها +تعقل +تعقيب +تعقيباً +تعقيد +تعقيدا +تعقيدات +تعقيداً +تعقيده +تعقيدًا +تعقّب +تعكس +تعكسان +تعكسه +تعكسها +تعكسين +تعكف +تعلب +تعلق +تعلقاً +تعلقت +تعلقه +تعلقها +تعلقونها +تعلقي +تعلل +تعلم +تعلماً +تعلمت +تعلمتموه +تعلمته +تعلمتها +تعلمتُ +تعلمنا +تعلمناه +تعلمه +تعلمها +تعلموا +تعلمون +تعلمين +تعلمينه +تعلن +تعلو +تعلوها +تعلي +تعليب +تعليبها +تعليق +تعليقات +تعليقاته +تعليقاتها +تعليقك +تعليقه +تعليقها +تعليم +تعليما +تعليمات +تعليماتها +تعليماً +تعليمنا +تعليمه +تعليمها +تعليمهم +تعليمهن +تعليمي +تعليميا +تعليمياً +تعليمية +تعليميتها +تعليمًا +تعلّق +تعلّمت +تعلّمنا +تعلّمه +تعلّمي +تعم +تعمد +تعمدت +تعمر +تعمق +تعمقاً +تعمقت +تعمل +تعملان +تعملق +تعمها +تعميد +تعميده +تعمير +تعميق +تعميم +تعمّقت +تعمُّ +تعن +تعنت +تعنى +تعني +تعنين +تعنيه +تعنِّف +تعهد +تعهدات +تعهدت +تعهدته +تعهدكم +تعهّدت +تعهّدني +تعود +تعودان +تعودت +تعودنا +تعودوا +تعودين +تعوزنا +تعوق +تعوقني +تعوقه +تعول +تعوم +تعويد +تعويذة +تعويض +تعويضات +تعويضاً +تعويضها +تعويضيا +تعويضية +تعويم +تعوّذ +تعوَّدته +تعي +تعيد +تعيدك +تعيدنا +تعيش +تعيشه +تعيشها +تعيشون +تعيشي +تعيشين +تعيق +تعين +تعينت +تعيننا +تعينني +تعينه +تعيين +تعيينك +تعيينه +تعييني +تعُرِّضُوا +تعّلمناه +تـــلوث +تــقــول +تــكون +تـقـانـة +تـم +تف +تفئيرت +تفاءلت +تفاؤل +تفاجأ +تفاح +تفاحتين +تفاخر +تفادي +تفاديا +تفارق +تفارقان +تفارقني +تفارقه +تفاسير +تفاسيرهم +تفاصيل +تفاصيله +تفاصيلها +تفاعل +تفاعلات +تفاعلاتها +تفاعلاً +تفاعله +تفاعلها +تفاعلهم +تفاقم +تفاقمت +تفاقمها +تفانت +تفاهم +تفاوت +تفاوتاً +تفاوتت +تفاوض +تفتت +تفتتح +تفتح +تفتحت +تفتحتا +تفتحه +تفتر +تفترش +تفترض +تفترّ +تفتش +تفتعل +تفتقد +تفتقده +تفتقر +تفتك +تفتنها +تفتيت +تفتيش +تفتيشية +تفتُرْ +تفجر +تفجرت +تفجير +تفجيرها +تفجّر +تفحص +تفحصت +تفخر +تفخيم +تفرح +تفرحوا +تفرد +تفرده +تفرز +تفرزها +تفرش +تفرض +تفرضه +تفرضها +تفرعات +تفرق +تفرقة +تفرقت +تفريط +تفريطها +تفريق +تفرّده +تفرّقت +تفرُّدها +تفسخ +تفسد +تفسر +تفسرون +تفسرين +تفسير +تفسيرا +تفسيرات +تفسيراتهم +تفسيراً +تفسيره +تفسيرها +تفسّر +تفشت +تفشل +تفصح +تفصل +تفصيل +تفصيلا +تفصيلات +تفصيلاً +تفصيلها +تفصيلي +تفصيليا +تفصيلية +تفض +تفضح +تفضحنا +تفضحها +تفضل +تفضلت +تفضلتم +تفضلها +تفضي +تفضيل +تفضيلها +تفعل +تفعلا +تفعله +تفعلوا +تفعلي +تفعيل +تفقد +تفقده +تفقدها +تفقس +تفكر +تفكرين +تفكير +تفكيرا +تفكيرك +تفكيره +تفكيرهم +تفكيري +تفكيك +تفكيكه +تفكّر +تفلت +تفلتها +تفلح +تفنى +تفنيدا +تفنيده +تفنيدها +تفهم +تفهمت +تفهمه +تفهمها +تفهموني +تفهيم +تفهّم +تفهّمت +تفوت +تفوتك +تفوتها +تفوح +تفوق +تفوقا +تفوقاً +تفوقه +تفوقهم +تفوقًا +تفوهت +تفويض +تفي +تفيد +تفيدنا +تفيده +تفيض +تقابل +تقابلنا +تقابله +تقابلها +تقادم +تقاذفوا +تقارب +تقاربات +تقارن +تقارنون +تقارير +تقاريره +تقاس +تقاسمتها +تقاسمنا +تقاسمه +تقاضى +تقاضيه +تقاطع +تقاطعات +تقاطعه +تقاطعها +تقاطعوني +تقاعد +تقاعدت +تقاعده +تقاعدها +تقاعدهم +تقال +تقاليد +تقاليدها +تقالّوا +تقام +تقانة +تقانيات +تقاوم +تقاومنا +تقاومه +تقبض +تقبع +تقبل +تقبلتهم +تقبله +تقبلها +تقبيل +تقبّل +تقتحم +تقتحمه +تقترب +تقترح +تقترن +تقتسره +تقتسم +تقتصر +تقتضى +تقتضي +تقتل +تقتلع +تقتله +تقتلهم +تقتلين +تقتلينهم +تقتنه +تقتير +تقدح +تقدر +تقدرون +تقدس +تقدم +تقدما +تقدماً +تقدمت +تقدمتا +تقدمنا +تقدمه +تقدمها +تقدموا +تقدمون +تقدمي +تقدمية +تقدمًا +تقدير +تقديرا +تقديرات +تقديراتهم +تقديراً +تقديركم +تقديره +تقديرها +تقديري +تقديرية +تقديرًا +تقديس +تقديم +تقديماً +تقديمه +تقديمها +تقديمهما +تقدّر +تقدّرين +تقدّم +تقدّماً +تقدّمه +تقدّمياً +تقدَّم +تقدُّم +تقدِّم +تقذف +تقذفه +تقذفها +تقر +تقرأ +تقرأون +تقرؤه +تقرئيها +تقرب +تقربني +تقربوا +تقرحات +تقرر +تقرع +تقرون +تقريب +تقريبا +تقريباً +تقريبهما +تقريبية +تقريبًا +تقرير +تقريرا +تقريراً +تقريره +تقريرها +تقريرهم +تقريعها +تقرِّب +تقزز +تقسم +تقسو +تقسيم +تقسيما +تقسيمات +تقسيمها +تقشر +تقشرت +تقشير +تقصد +تقصدين +تقصر +تقصف +تقصي +تقصير +تقصّى +تقض +تقضم +تقضى +تقضي +تقطر +تقطع +تقطفون +تقطن +تقطيع +تقطّع +تقطِّرُ +تقع +تقعان +تقـانة +تقف +تقفز +تقل +تقلان +تقلب +تقلبات +تقلباته +تقلباتها +تقلبتها +تقلبني +تقلد +تقلدت +تقلدنا +تقلدها +تقلدوا +تقلص +تقلصت +تقلع +تقلق +تقلل +تقله +تقليد +تقليدا +تقليده +تقليدها +تقليدهم +تقليدى +تقليدي +تقليديا +تقليدياً +تقليدية +تقليص +تقليل +تقلّب +تقلّص +تقم +تقمير +تقميش +تقنع +تقنعنا +تقنعيه +تقنــــيات +تقنىين +تقني +تقنيا +تقنيات +تقنياتها +تقنية +تقنيتها +تقنين +تقنيًا +تقهر +تقهقر +تقواها +تقود +تقودنا +تقوده +تقودها +تقوست +تقول +تقوله +تقولون +تقولي +تقولين +تقوم +تقومون +تقوى +تقوية +تقويتها +تقويض +تقويم +تقويمك +تقويمها +تقويمية +تقىيم +تقىيمكم +تقي +تقيأ +تقيؤ +تقياً +تقية +تقيح +تقيداً +تقيده +تقيدي +تقيس +تقيم +تقيما +تقيمه +تقيمها +تقيموا +تقيمين +تقييد +تقييده +تقييم +تقييمه +تقييمي +تقييمية +تقييهم +تك +تكاتف +تكاثر +تكاثرها +تكاد +تكادان +تكاسلا +تكافأون +تكافؤ +تكافح +تكافلي +تكالبت +تكالبوا +تكاليف +تكاليفها +تكامل +تكاملا +تكبح +تكبدهم +تكبدوا +تكبر +تكبران +تكبره +تكبل +تكبلني +تكبير +تكبيره +تكتب +تكتبته +تكتبه +تكتبها +تكتبين +تكتبينه +تكترث +تكتسب +تكتسبها +تكتسح +تكتشف +تكتشفون +تكتظ +تكتف +تكتفي +تكتل +تكتلات +تكتمل +تكتنفه +تكتيكية +تكثر +تكثيف +تكثيفا +تكد +تكذب +تكذبها +تكر +تكرار +تكرارالتجربة +تكراراً +تكرارها +تكرر +تكررت +تكرس +تكرم +تكره +تكرهوا +تكرير +تكريس +تكريسا +تكريساً +تكريم +تكريمها +تكريمي +تكساس +تكسب +تكسبه +تكسبها +تكسر +تكسرت +تكسرها +تكسو +تكسوها +تكسية +تكسير +تكشف +تكشفت +تكشفه +تكشيرة +تكف +تكفل +تكفهر +تكفون +تكفي +تكفينا +تكفيني +تكفِ +تكفّ +تكل +تكلف +تكلفة +تكلفته +تكلفتها +تكلفتي +تكلل +تكللت +تكلم +تكلموا +تكليف +تكمل +تكملة +تكمن +تكن +تكنولوجي +تكنولوجيا +تكنولوجية +تكنولوجيتنا +تكنولوجيز +تكهف +تكون +تكونا +تكونت +تكونتا +تكونها +تكونوا +تكوني +تكوين +تكوينات +تكويناً +تكوينه +تكوينها +تكوينهما +تكويني +تكوّن +تكوّنت +تكىيف +تكيف +تكييف +تل +تلا +تلاءمت +تلائم +تلاحظ +تلاحظه +تلاحظون +تلاحق +تلاحقت +تلاحقني +تلاحقه +تلاحقها +تلاحم +تلاحمه +تلازم +تلازمت +تلاشت +تلاشى +تلاشي +تلاصق +تلاطم +تلاعب +تلاعبها +تلافي +تلافيف +تلاقح +تلاقي +تلال +تلامذة +تلامذته +تلامس +تلامسان +تلاميذ +تلاميذه +تلاميذها +تلاميذهم +تلاميذي +تلاه +تلاها +تلاوة +تلاوين +تلبث +تلبد +تلبري +تلبس +تلبسه +تلبى +تلبي +تلبية +تلبيتها +تلة +تلت +تلتئم +تلتحق +تلتزم +تلتصق +تلتف +تلتفت +تلتقط +تلتقطه +تلتقطها +تلتقطي +تلتقي +تلتقيان +تلتمع +تلته +تلتها +تلتهب +تلتهم +تلتهمها +تلجأ +تلجأون +تلح +تلحظ +تلحظها +تلحق +تلحقنا +تلحن +تلحين +تلحينه +تلحّ +تلخص +تلخصت +تلخيص +تلخيصا +تلخيصها +تلد +تلدها +تلذ +تلزم +تلطف +تلطيف +تلعب +تلعبان +تلعبه +تلعثمت +تلعن +تلف +تلفازي +تلفت +تلفتت +تلفتوا +تلفزيون +تلفزيونا +تلفزيونات +تلفزيونياً +تلفزيونية +تلفلف +تلفها +تلفونيا +تلفُّ +تلق +تلقاء +تلقائي +تلقائيا +تلقائياً +تلقائية +تلقائيين +تلقائيًا +تلقاه +تلقاها +تلقت +تلقح +تلقفته +تلقفه +تلقفها +تلقوا +تلقى +تلقي +تلقيت +تلقيته +تلقيتها +تلقيح +تلقين +تلقينا +تلقيناه +تلقيه +تلقيها +تلقَّى +تلك +تلكم +تلم +تلمح +تلمحني +تلمحه +تلمذته +تلمس +تلمسه +تلمسيها +تلمع +تلمعان +تلمني +تلمه +تلميذ +تلميذا +تلميذاً +تلميذة +تلميذك +تلميذه +تلمَّست +تلن +تلهب +تلهبه +تلهو +تلهي +تلو +تلوث +تلوثا +تلوح +تلوذ +تلومونني +تلون +تلونت +تلونها +تلونين +تلويث +تلويح +تلوين +تلوينا +تلوّث +تليف +تليفزيون +تليفزيوني +تليفزيونية +تليفونا +تليفونية +تليق +تليميريز +تلين +تليها +تليين +تم +تماثل +تماثلا +تماثلها +تماثيل +تمادي +تمارس +تمارسه +تمارسها +تمارين +تمازج +تماس +تماسك +تماسكا +تماسكاً +تماسكت +تماسكنا +تماسكها +تماسّ +تمام +تماما +تماماً +تمامه +تمامًا +تمانع +تمايز +تمايزات +تمبوكتو +تمت +تمتات +تمتاز +تمتد +تمتدح +تمتزج +تمتص +تمتصه +تمتصّ +تمتطيها +تمتع +تمتعت +تمتـص +تمتلئ +تمتلك +تمتلكه +تمتم +تمتمة +تمتهن +تمتينا +تمتّ +تمثال +تمثالا +تمثالاً +تمثاله +تمثل +تمثلت +تمثلن +تمثله +تمثلها +تمثيل +تمثيلا +تمثيله +تمثيلياته +تمثيلية +تمثّل +تمثّلت +تمجيد +تمحل +تمحو +تمحورت +تمحى +تمحيص +تمخر +تمخض +تمخضت +تمد +تمدح +تمدد +تمدني +تمديد +تمدّنا +تمر +تمراً +تمرد +تمردت +تمردها +تمرر +تمررها +تمركزت +تمركزوا +تمركشت +تمرّ +تمرُّ +تمزج +تمزق +تمزقها +تمس +تمسح +تمسحت +تمسك +تمسكا +تمسكه +تمسكها +تمشط +تمشون +تمشي +تمشياً +تمصير +تمض +تمضي +تمضية +تمضِ +تمطر +تمطركثيرا +تمعن +تمكن +تمكنا +تمكنت +تمكننا +تمكنه +تمكنها +تمكنهم +تمكنوا +تمكين +تمكينها +تمكّن +تمكّنه +تملأ +تملأه +تملؤها +تملك +تملكتني +تملكني +تملكه +تملكها +تملكون +تمليكه +تمليه +تمليها +تملّ +تملّك +تمم +تمناها +تمنت +تمنح +تمنحك +تمنحنا +تمنحني +تمنحه +تمنحها +تمنع +تمنعن +تمنعنا +تمنعه +تمنعها +تمنوه +تمنياته +تمنيت +تمنيته +تمنيتُ +تمنيني +تمهد +تمهلنا +تمهيد +تمهيدا +تمهيداً +تمهيدية +تمهيدًا +تموت +تموتوا +تموج +تموجات +تمور +تموز +تمول +تموله +تمويل +تمويلاً +تمويلها +تمويلي +تمويليا +تموين +تمويناً +تموينية +تمويه +تموّل +تميز +تميزا +تميزت +تميزه +تميزها +تميزهن +تميزًا +تميط +تميل +تميم +تميمة +تمييز +تمييزاً +تمييزها +تمييزًا +تميّز +تميّزبين +تميّزت +تميّزنا +تميّزه +تميِّز +تمُتُّ +تمُدُّ +تمّ +تمّام +تمّت +تمّيزت +تمَّ +تمَّحي +تنأى +تنابذنا +تناثر +تناثرت +تناجي +تناحر +تنادت +تنادى +تنادي +تناديك +تناديه +تناذر +تنازع +تنازل +تنازلات +تنازلت +تنازلها +تناسب +تناسباً +تناسبت +تناسبني +تناسق +تناسقه +تناسل +تناسلي +تناسلية +تناسي +تناسيتُ +تناسيه +تناضل +تناظرا +تنافر +تنافس +تنافسى +تنافسية +تناقش +تناقشوا +تناقص +تناقصت +تناقض +تناقضا +تناقضات +تناقضاً +تناقضه +تناقل +تناقلته +تناقلتها +تناقلها +تنال +تناله +تنام +تنامت +تنامى +تنامي +تناهت +تناهض +تناهي +تناول +تناولت +تناولته +تناولتها +تناوله +تناولها +تناولهم +تناولهما +تناولوا +تناولوه +تناولوها +تنبأ +تنبؤات +تنبئ +تنبئك +تنبت +تنبثق +تنبح +تنبذ +تنبس +تنبض +تنبع +تنبعث +تنبه +تنبهت +تنبهر +تنبهوا +تنبيه +تنبيهها +تنبّأتُ +تنتاب +تنتابه +تنتبه +تنتثر +تنتج +تنتجه +تنتجها +تنتزع +تنتسب +تنتشر +تنتشل +تنتصب +تنتطح +تنتظر +تنتظرك +تنتظرنا +تنتظرني +تنتظره +تنتظرها +تنتظري +تنتظم +تنتفي +تنتقد +تنتقل +تنتقم +تنتكس +تنتمى +تنتمي +تنته +تنتهجها +تنتهك +تنتهى +تنتهي +تنثال +تنثر +تنثني +تنجانيقا +تنجب +تنجح +تنجرف +تنجز +تنجزه +تنجلي +تنجم +تنجو +تنجي +تنحاز +تنحجب +تنحدر +تنحرف +تنحسر +تنحصر +تنحل +تنحني +تنحى +تنحية +تنحيف +تنخرط +تنخرف +تنخفض +تنخلع +تند +تندب +تندبه +تندثر +تندد +تندرج +تندفع +تندقم +تندلع +تندمج +تندمل +تندهش +تنديدها +تنذر +تنزانيا +تنزح +تنزع +تنزعان +تنزل +تنزيله +تنزّل +تنس +تنساب +تنسب +تنسج +تنسحب +تنسخ +تنسدل +تنسلخ +تنسها +تنسوا +تنسى +تنسيق +تنسيقها +تنسين +تنسَ +تنشأ +تنشئ +تنشئة +تنشئتها +تنشب +تنشدها +تنشر +تنشره +تنشرها +تنشط +تنشع +تنشق +تنشيط +تنشيطه +تنشيطها +تنص +تنصب +تنصت +تنصتون +تنصرف +تنصهر +تنصيرية +تنضج +تنضح +تنضم +تنضير +تنط +تنطبق +تنطفئ +تنطق +تنطقان +تنطلق +تنطوي +تنظر +تنظران +تنظرني +تنظرون +تنظري +تنظرين +تنظم +تنظمها +تنظير +تنظيراتهم +تنظيراً +تنظيف +تنظيفها +تنظيم +تنظيمات +تنظيماتها +تنظيماً +تنظيمه +تنظيمها +تنظيميا +تنعدم +تنعطف +تنعكس +تنعم +تنعيه +تنـهدم +تنفتح +تنفجر +تنفد +تنفذ +تنفرجان +تنفرد +تنفس +تنفسي +تنفسية +تنفصل +تنفصم +تنفض +تنفضه +تنفع +تنفـيذها +تنفق +تنفلت +تنفلق +تنفي +تنفيذ +تنفيذاً +تنفيذه +تنفيذها +تنفيذهها +تنفيذية +تنفيذيين +تنقب +تنقدهم +تنقر +تنقرض +تنقسم +تنقص +تنقصنا +تنقصه +تنقصها +تنقصي +تنقض +تنقطع +تنقل +تنقلات +تنقلاتنا +تنقلاتي +تنقلب +تنقلت +تنقلك +تنقلنا +تنقله +تنقلها +تنقلهم +تنقيب +تنقية +تنكتب +تنكر +تنكرهم +تنكروا +تنكس +تنكسية +تنكشف +تنكص +تنكمش +تنل +تنلها +تنم +تنمو +تنموي +تنموية +تنمي +تنمية +تنميته +تنميتها +تنميط +تنميق +تنه +تنهار +تنهال +تنهد +تنهدت +تنهش +تنهشه +تنهض +تنهل +تنهمر +تنهمران +تنهه +تنهي +تنور +تنورة +تنورتان +تنورته +تنوس +تنوع +تنوعاً +تنوعت +تنوعه +تنوعًا +تنوي +تنوير +تنويع +تنويعات +تنويم +تنوّع +تنوّعا +تنوّعاً +تنوّعت +تنير +تنّور +تنُّوب +ته +تها +تهاتفنا +تهاجرالاناث +تهاجم +تهاجمنا +تهاجمه +تهاجمها +تهافت +تهافتت +تهامة +تهاوت +تهاويل +تهب +تهبط +تهبّ +تهتز +تهتف +تهتم +تهتموا +تهتمين +تهجم +تهجير +تهجيرك +تهدأ +تهدئة +تهدد +تهددهم +تهدر +تهدرها +تهدف +تهدم +تهدمت +تهدمه +تهدهد +تهديد +تهديدا +تهديدات +تهديداً +تهديدًا +تهديها +تهذي +تهذيب +تهذيباً +تهذّب +تهرب +تهرع +تهريب +تهريباً +تهريبها +تهز +تهزج +تهزمها +تهزه +تهزهما +تهزي +تهزّ +تهطل +تهفو +تهفوا +تهكما +تهل +تهلك +تهلكها +تهم +تهمة +تهمتنا +تهمد +تهمس +تهمل +تهملين +تهمنا +تهمني +تهمه +تهمها +تهميش +تهمينا +تهمّ +تهمُّما +تهن +تهنئة +تهوري +تهوى +تهوي +تهوية +تهويد +تهويمات +تهيء +تهيأ +تهيأت +تهيئ +تهيئة +تهيئته +تهيج +تهيجاً +تهيل +تهيمن +تهيّبت +توأم +توائم +توابعه +توابل +توابيت +تواتر +تواتره +تواترها +تواجد +تواجدت +تواجده +تواجدهم +تواجه +تواجهك +تواجهنا +تواجهني +تواجهه +تواجهها +تواجههم +توادهم +توارث +توارثته +توارى +تواريخ +توازن +توازنات +توازنه +توازنها +توازني +توازي +تواصل +تواصله +تواضع +تواضعاً +تواضعت +تواطؤ +توافد +توافدت +توافر +توافرت +توافرها +توافق +توافقه +توافقها +توافقين +توافقينني +توافه +تواقات +تواقاً +تواكب +تواكل +توالت +توالد +توالده +توالوا +توالى +توالي +تواً +توب +توبته +توبفر +توت +توتر +توتراً +توتّرا +توثقت +توثيق +توج +توجب +توجت +توجتها +توجد +توجده +توجس +توجساتنا +توجست +توجه +توجها +توجهات +توجهاتها +توجهاتي +توجهت +توجهنا +توجهه +توجهها +توجههم +توجهي +توجهًا +توجهّ +توجو +توجيه +توجيها +توجيهات +توجيهاتكم +توجيهاً +توجيهه +توجيهها +توجّه +توجَّه +توجُّه +توجِّه +توحدت +توحش +توحي +توحيد +توحيده +توحّدت +توخته +توخي +تود +تودد +تودي +تورا +توراتية +تورتة +تورد +تورط +تورق +توركانا +تورم +تورنتو +تورنر +توريد +توريطه +توريقا +تورينجينسيس +تورّث +توزر +توزع +توزعت +توزعتها +توزيع +توزيعا +توزيعه +توزيعها +توزيعًا +توسد +توسط +توسع +توسعاً +توسعة +توسعت +توسعي +توسعية +توسكاي +توسل +توسلت +توسوس +توسيع +توسيعها +توش +توشك +توشيبا +توصف +توصل +توصلت +توصلتم +توصلتُ +توصلنا +توصله +توصلوا +توصى +توصيات +توصياتهم +توصية +توصيف +توصيفات +توصيفها +توصيل +توصيلات +توصّل +توصَّل +توضح +توضحه +توضع +توضعه +توضيح +توضيحاتنا +توطنوا +توطيد +توطين +توظيف +توظيفها +توعد +توعدون +توعك +توعية +توفاه +توفاهما +توفر +توفرت +توفره +توفرها +توفى +توفي +توفيت +توفير +توفيركل +توفيرها +توفيق +توفيقيّ +توفّر +توفَّرت +توفُّر +توفِّر +توقا +توقظ +توقظنا +توقظي +توقع +توقعات +توقعاتنا +توقعاته +توقعاه +توقعنا +توقعه +توقف +توقفت +توقفتْ +توقفنا +توقفها +توقفوا +توقفي +توقه +توقيت +توقيتها +توقيع +توقيعاتهم +توقيعي +توقًا +توكأت +توكللي +توكيد +تولاها +تولت +تولد +تولده +تولستوي +تولوز +تولول +تولى +تولي +توليا +توليت +توليد +توليدو +توليفاً +توليفة +توليه +توليها +تولّت +تولّد +تولِّد +توم +تومئ +توماس +توماهوك +تومرت +تونا +تونس +تونسية +تونكا +توني +توهب +توهج +توهم +توهما +توهماتسو +توهنه +توي +توينبي +تويني +توّاقاً +توّجت +تي +تيأس +تيأسي +تيار +تيارا +تيارات +تياراتها +تياراً +تياره +تيارها +تيارين +تيارًا +تيتانيك +تيتم +تيتو +تيجا +تيجان +تيراثوبياس +تيران +تيراي +تيرثينايل +تيرجي +تيرنر +تيزيني +تيسر +تيسروا +تيسليت +تيسير +تيسّر +تيفر +تيفولي +تيقنتُ +تيقوما +تيلر +تيم +تيمة +تيممت +تيمنا +تيمناً +تيمنًا +تيمور +تيمية +تين +تيه +تيّار +تَبْدِيلاً +تَجْرِي +تَحْتِهَا +تَذْرَعان +تَستقبل +تَصِحّوا +تَعُد +تَـجُـدْ +تَنسَ +تُبارى +تُبنى +تُتداول +تُتيح +تُتَطور +تُتْبَع +تُثرثر +تُجابه +تُجرَى +تُجرّؤكَ +تُجمع +تُجهض +تُجيد +تُجِبْ +تُجْرَى +تُحدقُ +تُحسب +تُحفر +تُحَلّ +تُخبئها +تُخصّص +تُدرّس +تُدعى +تُذكر +تُذلل +تُذْهَب +تُرافق +تُرجم +تُرجى +تُرفع +تُركب +تُرى +تُريني +تُريه +تُرَ +تُرَد +تُرَى +تُزال +تُزرع +تُزِالَ +تُستخدم +تُستعمل +تُستقبل +تُستهلك +تُستَخدَم +تُسقط +تُسمى +تُسمّي +تُسمِّي +تُسهم +تُسيِّر +تُسْتَخْدَم +تُسْتَمَرّ +تُشاهد +تُشدُّ +تُصب +تُصبَّ +تُصوِّر +تُصيخ +تُصَبُّ +تُضحك +تُضرب +تُطرح +تُطرد +تُطفأ +تُطلقه +تُظهر +تُعبر +تُعتَبَر +تُعد +تُعدُّ +تُعرف +تُعرَف +تُعرّف +تُعزَى +تُعقد +تُعلّمنا +تُعيد +تُعَد +تُعَدُّ +تُفرحها +تُفرز +تُفسِد +تُفقد +تُقابَل +تُقاس +تُقال +تُقام +تُقبل +تُقدح +تُقرأ +تُقرّ +تُقسر +تُقلق +تُقَيَّم +تُكتب +تُكتشف +تُلتقط +تُمارس +تُمثّل +تُملى +تُملي +تُمنَح +تُمنّي +تُميّز +تُميِّز +تُمْحى +تُنتج +تُنسج +تُنسى +تُنشد +تُنشر +تُنكر +تُنَظَّف +تُنَفَّذ +تُهان +تُهيأ +تُوج +تُوصي +تُوَقَّف +تُوِّج +تّصلّب +تّنفّس +تّنفّسية +ث +ثأر +ثأرا +ثأرت +ثائر +ثائرة +ثابت +ثابتا +ثابتاً +ثابتة +ثابتًا +ثابرت +ثابروا +ثاتشر +ثار +ثارت +ثاقب +ثاقبة +ثالث +ثالثا +ثالثاً +ثالثة +ثالثي +ثالثًا +ثالوث +ثالوثاً +ثامن +ثان +ثانوي +ثانوية +ثانى +ثاني +ثانيا +ثانياً +ثانية +ثانيه +ثانيهما +ثانيًا +ثانٍ +ثاوية +ثبات +ثباته +ثباتها +ثبت +ثبتا +ثبتت +ثبتناه +ثبته +ثبوت +ثبّتت +ثخذ +ثديي +ثراء +ثرائه +ثراه +ثراهما +ثرثارة +ثرثرة +ثرثرتكِ +ثروات +ثروة +ثروته +ثروتي +ثرى +ثري +ثريا +ثريات +ثرياً +ثرية +ثعالب +ثعبان +ثعلب +ثقاب +ثقافات +ثقافة +ثقافتك +ثقافتنا +ثقافته +ثقافتها +ثقافتهم +ثقافتهما +ثقافتي +ثقافتين +ثقافي +ثقافيا +ثقافياً +ثقافية +ثقب +ثقباً +ثقباًً +ثقبها +ثقبين +ثقة +ثقتك +ثقتكم +ثقته +ثقتهم +ثقل +ثقلا +ثقلها +ثقوب +ثقوبا +ثقوبها +ثقيف +ثقيل +ثقيلا +ثقيلاً +ثقيلة +ثك +ثكلت +ثكلى +ثلاث +ثلاثا +ثلاثاً +ثلاثة +ثلاثتنا +ثلاثمائة +ثلاثون +ثلاثى +ثلاثي +ثلاثيا +ثلاثية +ثلاثيته +ثلاثين +ثلاجة +ثلث +ثلثا +ثلثي +ثلج +ثلجية +ثلوج +ثم +ثمار +ثماره +ثمارها +ثمان +ثمانمائة +ثمانى +ثماني +ثمانية +ثمانين +ثمة +ثمر +ثمرات +ثمراً +ثمرة +ثمرها +ثمل +ثمن +ثمنا +ثمناً +ثمنه +ثمنها +ثمين +ثمينة +ثمّ +ثمّة +ثناء +ثناؤك +ثنائي +ثنائيا +ثنائيات +ثنائية +ثناه +ثنايا +ثنتين +ثنيات +ثو +ثواب +ثوابت +ثوابتُها +ثوان +ثواني +ثوب +ثوبه +ثوبها +ثوبًا +ثور +ثورات +ثوراته +ثوراتهم +ثوران +ثوراً +ثورة +ثورته +ثورتين +ثورن +ثوريا +ثوم +ثياب +ثيابها +ثيابهم +ثير +ثيرمى +ثيسبيدس +ثيودو +ثيودور +ثَم +ثَمَّ +ثَوَابًا +ج +جأش +جأشي +جئت +جئتك +جئتم +جئتنا +جئتُ +جئنا +جئناها +جا +جاء +جاءت +جاءتك +جاءتني +جاءته +جاءك +جاءنا +جاءني +جاءه +جاءها +جاءوا +جاؤوا +جائر +جائرة +جائزا +جائزة +جائزته +جائزتها +جائزتي +جائعاً +جائعة +جائعين +جائعًا +جاب +جابر +جابرييل +جابهنا +جابوها +جات +جاتا +جاثمة +جاد +جادا +جادافبوت +جاداً +جادة +جادت +جادل +جادون +جادين +جاذبي +جاذبية +جاذبيته +جاذبيتها +جار +جاراً +جارة +جارت +جارتنا +جارتها +جارتهم +جارثيا +جارجي +جارحا +جارحة +جاردنز +جارف +جارفة +جارفين +جارك +جارلاند +جارمكو +جاره +جارودي +جارون +جارى +جاري +جارية +جاريةً +جاريتها +جاز +جازالتعبير +جازما +جازييف +جاسم +جاسنر +جاسوس +جاسوسا +جاع +جاعلا +جاعلة +جاف +جافا +جافة +جاك +جاكادى +جاكادي +جاكسون +جاكوبسون +جال +جالس +جالسا +جالسان +جالساً +جالسة +جالسته +جالسير +جالسين +جالسًا +جالليكاس +جالون +جالونات +جاليات +جاليليو +جالينوس +جام +جاما +جامايكا +جامبو +جامبيا +جامحة +جامدة +جامع +جامعا +جامعات +جامعاتنا +جامعاتها +جامعة +جامعتنا +جامعته +جامعتي +جامعه +جامعي +جامعيا +جامعياً +جامعية +جامعيًّا +جان +جانب +جانبا +جانباً +جانبنا +جانبه +جانبها +جانبهم +جانبى +جانبي +جانبيا +جانبية +جانبيتان +جانبيه +جانبيها +جانبًا +جانبٍ +جانسين +جاني +جانيرو +جانٍ +جاها +جاهد +جاهدا +جاهداً +جاهدة +جاهدت +جاهدين +جاهدًا +جاهز +جاهزا +جاهزاً +جاهزة +جاهزين +جاهزًا +جاهلية +جاهين +جاوبتهم +جاورته +جاورها +جاوز +جاوزت +جب +جبار +جبارة +جباع +جبال +جبالها +جبان +جبانا +جبانة +جبر +جبرا +جبرائيل +جبران +جبره +جبريل +جبرين +جبسية +جبل +جبلاً +جبلة +جبلي +جبليا +جبلية +جبن +جبناء +جبني +جبنيت +جبهات +جبهة +جبهتي +جبهتين +جبور +جبيك +جبيل +جبين +جبينك +جبينه +جبينها +جبينهم +جبّارة +جثة +جثته +جثث +جثثا +جثم +جثمان +جثمانه +جثّته +جحا +جحر +جحره +جحرها +جحود +جحور +جحورها +جحيم +جد +جدا +جدار +جدارا +جدارة +جدارته +جدارتها +جدارتهم +جداري +جدارية +جدارًا +جدال +جدالا +جدالاً +جداول +جداً +جداًً +جدة +جدتك +جدته +جدتي +جدد +جددا +جدران +جدرانه +جدرانها +جدرانَها +جدعان +جدف +جدكم +جدل +جدلا +جدلاً +جدلية +جده +جدها +جدو +جدواها +جدول +جدولنا +جدوى +جدوي +جدي +جدياً +جدية +جديد +جديدا +جديداً +جديدة +جديدةً +جديده +جديدين +جديدًا +جدير +جديرا +جديرة +جديرتان +جديرٌ +جديّة +جدًا +جدّ +جدّاه +جدّاَ +جدًّا +جذاب +جذابا +جذاباً +جذابة +جذب +جذباً +جذبت +جذبتني +جذبته +جذبه +جذبوي +جذر +جذره +جذرها +جذرى +جذري +جذريا +جذرياً +جذرية +جذع +جذعها +جذعية +جذلاناً +جذوة +جذوته +جذوتها +جذور +جذورنا +جذوره +جذورها +جذورهم +جذوع +جذي +جذّاب +جر +جرأة +جرا +جراء +جرائد +جرائم +جرابات +جرابي +جراثيم +جراح +جراحا +جراحات +جراحاتنا +جراحة +جراحته +جراحه +جراحي +جراحيا +جراحية +جراحًا +جرار +جرارات +جرارة +جرافة +جرافيك +جرام +جراما +جرامات +جراماً +جرامًا +جرانت +جراند +جرانيت +جرايد +جربت +جرت +جرثوم +جرثومة +جرثومي +جرثومية +جرجا +جرح +جرحا +جرحاً +جرحت +جرحك +جرحًا +جرد +جرداء +جرس +جرسا +جرش +جرعات +جرعاتها +جرعة +جرعته +جرف +جرفت +جرفتهما +جرهارلم +جرهم +جروا +جروح +جروحاً +جروسمان +جرى +جري +جريء +جريئا +جريئة +جريا +جريان +جريبن +جريتا +جريجوري +جريجوريو +جريح +جريحا +جريد +جريدة +جريدتا +جريدته +جريدتي +جرير +جريمة +جرين +جرينبيس +جرينتش +جرينلاند +جريًا +جرّ +جرّب +جرّت +جرّتين +جرّنا +جرّي +جرَّاء +جرِّ +جزء +جزءا +جزءان +جزءاً +جزءً +جزءًا +جزءٌ +جزآن +جزأين +جزئه +جزئها +جزئي +جزئيا +جزئيات +جزئياً +جزئية +جزاء +جزاءات +جزائري +جزائرية +جزار +جزافاً +جزافًا +جزاك +جزر +جزع +جزعتُ +جزيء +جزيئات +جزيئاً +جزيئي +جزيرة +جزيرتهم +جزيل +جس +جسارته +جسام +جساماً +جسامته +جسد +جسدا +جسداً +جسدت +جسدنا +جسده +جسدها +جسدهم +جسدي +جسديا +جسدينا +جسديًا +جسر +جسرا +جسراً +جسره +جسرين +جســـــمنا +جسم +جسمالمريض +جسمانياً +جسماً +جسمك +جسمنا +جسمه +جسمها +جسمي +جسمية +جسور +جسوره +جسيمة +جسّار +جسّدها +جشع +جعبر +جعفر +جعفرباناهي +جعل +جعلا +جعلت +جعلتنا +جعلتني +جعلته +جعلتها +جعلنا +جعلني +جعله +جعلها +جعلهم +جعلوا +جعلوه +جعلي +جعودة +جعيط +جـ +جـديد +جــــريدة +جــمال +جف +جفاء +جفاف +جفافا +جفان +جفت +جفل +جفن +جفنيها +جفول +جفّ +جفّت +جفّف +جل +جلاء +جلابية +جلاد +جلادستون +جلاديس +جلاديه +جلاس +جلاسر +جلال +جلالة +جلالتكم +جلالته +جلاله +جلايكول +جلب +جلباب +جلبة +جلبرت +جلبنا +جلبه +جلبهم +جلبوا +جلبي +جلت +جلجامش +جلد +جلدته +جلدرات +جلدك +جلده +جلدها +جلدي +جلدية +جلس +جلسا +جلساءه +جلسائه +جلسات +جلسة +جلست +جلستنا +جلسته +جلسنا +جلسوا +جلسَ +جلطات +جلطة +جللا +جلمودُ +جله +جلها +جلوبال +جلوبيفارم +جلودنا +جلودهم +جلوسنا +جلوسه +جلون +جلي +جليا +جليانة +جلية +جليد +جليدة +جليدى +جليدية +جليسة +جليسه +جليل +جليلا +جليلة +جليًّا +جليَّا +جلّ +جماجم +جماح +جماحه +جمادى +جمادي +جماع +جماعات +جماعة +جماعتنا +جماعته +جماعي +جماعيا +جماعية +جماعيًا +جمال +جمالا +جمالاً +جماله +جمالها +جمالي +جماليات +جمالية +جماهير +جماهيره +جماهيري +جماهيريا +جماهيرياً +جماهيرية +جماً +جمة +جمجته +جمجمة +جمجمته +جمحمته +جمر +جمرات +جمع +جمعا +جمعاء +جمعة +جمعت +جمعتنا +جمعتني +جمعته +جمعتها +جمعتهم +جمعتهما +جمعني +جمعه +جمعها +جمعهما +جمعوا +جمعيات +جمعية +جمعيتنا +جمعيته +جمعيتي +جمل +جملا +جملاً +جملة +جملته +جملتها +جملتهم +جملتين +جمهرة +جمهور +جمهورا +جمهوراً +جمهورك +جمهوره +جمهورها +جمهوري +جمهوريات +جمهورية +جمود +جموع +جميع +جميعا +جميعات +جميعاً +جميعنا +جميعها +جميعهم +جميعهن +جميعًا +جميل +جميلا +جميلان +جميلاً +جميلة +جميلتي +جن +جنائز +جنائية +جنات +جناتا +جناح +جناحاً +جناحـاً +جناحي +جناحين +جناحيه +جناحيَّ +جنازة +جنازتكم +جنازته +جنازتها +جناية +جناً +جنب +جنبا +جنبات +جنباته +جنباتها +جنباً +جنبه +جنبيات +جنة +جنته +جنتها +جنح +جنحوا +جند +جندت +جندي +جنديا +جندية +جنرال +جنرالات +جنرالاتنا +جنس +جنسك +جنسه +جنسهم +جنسيا +جنسيات +جنسياً +جنسية +جنسيته +جنسيًّا +جنكيز +جنوب +جنوبا +جنوباً +جنوبه +جنوبها +جنوبهم +جنوبي +جنوبية +جنوبًا +جنوة +جنوح +جنود +جنودهم +جنون +جنونا +جنونه +جنونها +جنونية +جنوه +جنى +جني +جنيف +جنين +جنيناً +جنيه +جنيها +جنيهات +جنيهاً +جنيّا +جنّب +جنّة +جها +جهات +جهاتك +جهاته +جهاتها +جهاد +جهاداً +جهادك +جهادها +جهادية +جهادًا +جهاراً +جهاز +جهازا +جهازك +جهازهم +جهازي +جهازًا +جهاني +جهة +جهته +جهتها +جهد +جهداً +جهدت +جهدنا +جهده +جهدها +جهدهم +جهدي +جهراً +جهرًا +جهز +جهل +جهلاً +جهلة +جهلك +جهلنا +جهلها +جهلهم +جهنم +جهنمي +جهنمية +جهود +جهودا +جهوداً +جهودكم +جهوده +جهودها +جهودهم +جهودي +جهودًا +جهودٌ +جهيد +جهيزة +جهيزته +جهينة +جهّزتما +جو +جوا +جوائز +جوائزها +جواب +جوابا +جواباً +جوابه +جوابها +جوابهم +جوابي +جوابًا +جواتيمالا +جواد +جواده +جوار +جوارحنا +جوارحي +جواره +جوارها +جوارهم +جوارهما +جواريرِ +جواز +جوازات +جوازه +جواسيس +جوالاً +جوامع +جوامعها +جوانا +جوانب +جوانبه +جوانبها +جوانتانامو +جوانتاناميرا +جوانجدونج +جوانحها +جواهر +جواً +جوبه +جوبهت +جوبهوا +جوته +جوخ +جودة +جودته +جودتها +جودل +جوده +جودو +جودوي +جودي +جوذا +جور +جورانتي +جورباتشوف +جورج +جورجي +جورجيا +جورجيو +جوردن +جورديمر +جورنال +جورنيجرات +جورينتي +جوريون +جوز +جوزف +جوزيف +جوستنياوس +جوسلين +جوع +جوعا +جوعاً +جوعى +جوعي +جوف +جوفاء +جوفه +جوفي +جوفية +جول +جولات +جولاتنا +جولة +جولتنا +جولته +جولد +جوليس +جومث +جون +جوناثان +جونس +جونسون +جوني +جونية +جونيه +جوها +جوهانسبرج +جوهر +جوهرا +جوهرانية +جوهرانيّ +جوهرة +جوهرها +جوهري +جوهريا +جوهرياً +جوهرية +جوهريين +جوي +جويا +جوياً +جوية +جوٍ +جوّ +جوّاب +جوّاً +جى +جي +جيئة +جيادهم +جياش +جياشة +جياع +جيب +جيبك +جيبه +جيبهم +جيبي +جيت +جيتار +جيتني +جيخون +جيد +جيدا +جيداً +جيداَ +جيدة +جيدين +جيدًا +جير +جيرار +جيراروي +جيراس +جيرالد +جيرالدي +جيران +جيراننا +جيربا +جيروم +جيري +جيش +جيشا +جيشاً +جيشه +جيشها +جيشهم +جيشي +جيـت +جيفارا +جيفري +جيفيك +جيكور +جيل +جيلا +جيلادا +جيلاً +جيلنا +جيله +جيلهما +جيلو +جيلي +جيلين +جيلٍ +جيم +جيماك +جيمس +جيمي +جين +جينات +جيناتنا +جيناتها +جينة +جيني +جينية +جينيسليه +جينًا +جيهان +جيوب +جيوبه +جيوبهم +جيوبي +جيورجيو +جيوردانو +جيوزب +جيوسبي +جيوسيبي +جيوش +جيوشا +جيوشاً +جيوشنا +جيوفاني +جيولوجيا +جيولوجية +جيولوجيين +جيّد +جيّداً +جيّدًا +جَثَت +جَدَّاتهم +جَنَّاتٍ +جَهِد +جُبل +جُبِلْن +جُرِّد +جُفاءً +جُمعت +جُندت +جِده +جّل +ح +حائر +حائرا +حائراً +حائرة +حائرون +حائرًا +حائزة +حائط +حائطية +حائكة +حائلا +حائلاً +حابس +حابو +حاتم +حاج +حاجات +حاجاته +حاجاتها +حاجاتي +حاجاً +حاجبه +حاجبيه +حاجة +حاجةً +حاجةٍ +حاجتنا +حاجته +حاجتها +حاجتهم +حاجتي +حاجز +حاجزا +حاجزاً +حاجزًا +حاجياته +حاجياتي +حاجيًا +حاد +حادا +حاداً +حادة +حادت +حادث +حادثا +حادثات +حادثة +حاده +حادّة +حاذقا +حاذقة +حار +حارا +حارات +حاراً +حاربته +حاربوا +حارة +حارته +حارس +حارسا +حارق +حارقة +حارين +حارّة +حاز +حازت +حازتها +حازم +حازما +حازمة +حاسباً +حاسبة +حاسبك +حاسة +حاسم +حاسما +حاسماً +حاسمة +حاشية +حاشيته +حاصد +حاصر +حاصرات +حاصرتني +حاصرته +حاصل +حاصلاً +حاصلين +حاضر +حاضرا +حاضراً +حاضرة +حاضرت +حاضرنا +حاضرها +حاضرهم +حاضري +حاضرًا +حاضنات +حاضنة +حاف +حافة +حافز +حافزاً +حافظ +حافظت +حافظوا +حافظًا +حافل +حافلا +حافلات +حافلاً +حافلة +حافلته +حافلتها +حافيا +حافياً +حافية +حاق +حاقدة +حاقن +حاكاه +حاكم +حاكما +حاكمها +حال +حالا +حالات +حالاته +حالاتها +حالاتهم +حالاتي +حالاً +حالة +حالةً +حالت +حالتنا +حالته +حالتها +حالتهم +حالتي +حالتين +حالفاه +حالفنا +حالك +حالكة +حالم +حالما +حالمة +حالنا +حاله +حالها +حالهم +حالي +حاليا +حالياً +حالية +حالين +حاليًا +حاليًّا +حام +حامد +حامض +حامضي +حامل +حاملا +حاملاً +حاملة +حامله +حاملها +حاملي +حاملين +حامليه +حامي +حامية +حاميتين +حامينا +حاميه +حان +حانات +حانت +حانقا +حانوتي +حانون +حانية +حاوره +حاوطوه +حاول +حاولت +حاولته +حاولنا +حاولوا +حاولي +حاوي +حاوية +حاييم +حب +حبا +حبائل +حبات +حباته +حباتها +حبال +حبالا +حباه +حباها +حباً +حببت +حبة +حبث +حبر +حبراً +حبس +حبسا +حبست +حبسه +حبسها +حبك +حبل +حبلاً +حبله +حبلى +حبلية +حبلٍ +حبن +حبنا +حبه +حبها +حبهما +حبوب +حبوبا +حبوباتي +حبي +حبيب +حبيبات +حبيبتي +حبيبه +حبيبي +حبيبين +حبيس +حبيسة +حبّ +حبّاته +حبّاً +حبّه +حبّهم +حتب +حتخبي +حتفه +حتفهم +حتفهما +حتما +حتماً +حتمت +حتميا +حتمياً +حتمية +حتمًا +حتى +حتي +حتّى +حث +حثت +حثيثة +حثًا +حج +حجاب +حجابها +حجاج +حجار +حجارة +حجازي +حجب +حجباً +حجبتها +حجة +حجته +حجج +حججه +حجر +حجرا +حجرات +حجراتنا +حجراته +حجرة +حجرته +حجرتي +حجره +حجرها +حجري +حجريات +حجرية +حجريًّا +حجرًا +حجز +حجزت +حجزنا +حجم +حجما +حجماً +حجمك +حجمه +حجمها +حجمي +حجمِها +حجوا +حجوزات +حجوزاتهم +حجَّت +حد +حدا +حدائق +حدائقها +حداثات +حداثة +حداثتنا +حداثته +حداثي +حداثياً +حداثية +حداد +حداً +حدب +حدة +حدتث +حدتها +حدث +حدثا +حدثاً +حدثت +حدثتنا +حدثتني +حدثته +حدثتهما +حدثنا +حدثني +حدثيني +حدج +حدجه +حدد +حددت +حددته +حددها +حددوا +حددوها +حدس +حدقة +حدقوا +حده +حدوة +حدوث +حدوثه +حدوثها +حدود +حدودا +حدوداً +حدودنا +حدوده +حدودها +حدودهم +حدودهما +حدي +حديث +حديثا +حديثاً +حديثاُ +حديثة +حديثكِ +حديثنا +حديثه +حديثها +حديثي +حديثًا +حديد +حديده +حديدو +حديدي +حديدية +حديقة +حديقته +حديقتي +حديقتين +حدين +حدًا +حدٍ +حدّ +حدّا +حدّاً +حدّة +حدّتها +حدّثتنا +حدّثنا +حدّقت +حدّقتُ +حدّها +حدّي +حدًّا +حدَّ +حدَّق +حدَّقوا +حذاء +حذاءك +حذاءه +حذاؤك +حذائه +حذائها +حذائي +حذار +حذر +حذرا +حذراُ +حذرة +حذرت +حذرنا +حذره +حذروا +حذرين +حذف +حذفناه +حذو +حذوه +حذّرتني +حر +حرا +حراء +حرائق +حرارة +حرارته +حرارتها +حرارية +حراس +حراستها +حراك +حرام +حران +حراً +حرب +حربا +حرباء +حرباً +حربة +حربكم +حربنا +حربه +حربها +حربهم +حربي +حربية +حربًا +حرة +حرج +حرجا +حرجاً +حرجة +حرجٌ +حردًا +حرر +حررتني +حررته +حررها +حرزيم +حرس +حرسه +حرسها +حرص +حرصا +حرصاً +حرصت +حرصنا +حرصه +حرصها +حرصهم +حرصوا +حرصي +حرضت +حرضتنا +حرضنا +حرف +حرفا +حرفاً +حرفة +حرفي +حرفيا +حرفياً +حرفية +حرفين +حرفيين +حرفًا +حرق +حرقة +حرقه +حرقها +حرك +حركات +حركاتنا +حركاته +حركة +حركت +حركته +حركتها +حركتهم +حركتي +حركية +حرم +حرمات +حرمان +حرمانها +حرماني +حرمة +حرمت +حرمته +حرمتها +حرمني +حرمه +حرمها +حرمهم +حرموا +حروب +حروبا +حروف +حروفا +حروفه +حروفها +حروق +حرياته +حرية +حريتنا +حريته +حريتها +حريتهم +حريتهن +حريتي +حريري +حريص +حريصا +حريصاً +حريصة +حريصين +حريصًا +حريق +حريمة +حريّتها +حرًا +حرّ +حرّاسه +حرّان +حرّة +حرّكت +حرّيته +حرَّانِ +حرَّكته +حزام +حزب +حزبا +حزبان +حزباً +حزبها +حزبي +حزبية +حزبيًا +حزتُ +حزم +حزمة +حزمت +حزن +حزنا +حزناً +حزنت +حزنه +حزنهم +حزنًا +حزوزا +حزيران +حزين +حزينا +حزيناً +حزينة +حزينون +حزّ +حس +حسا +حساء +حساب +حسابات +حساباتنا +حساباته +حساباتها +حساباً +حسابته +حسابك +حسابه +حسابها +حسابي +حسابية +حساس +حساسة +حساسية +حساسيته +حساسيتها +حسان +حساً +حسب +حسبانه +حسبت +حسبك +حسبما +حسد +حسداً +حسدت +حسر +حسرة +حسم +حسما +حسمت +حسن +حسنا +حسناء +حسناً +حسنة +حسنت +حسنتين +حسنى +حسني +حسنين +حسنًا +حسه +حسية +حسين +حسّاسة +حسّية +حسِّية +حسْبُك +حشائش +حشد +حشدا +حشداً +حشدت +حشدهم +حشرا +حشرات +حشرة +حشرت +حشرجة +حشرية +حشمة +حشي +حشيشة +حصائره +حصاة +حصاد +حصاداً +حصادنا +حصادها +حصار +حصاره +حصارها +حصارهم +حصان +حصانا +حصانة +حصانته +حصانه +حصة +حصته +حصتهم +حصد +حصر +حصرا +حصراً +حصره +حصرها +حصرية +حصص +حصل +حصلت +حصلنا +حصلوا +حصن +حصناً +حصول +حصوله +حصولها +حصولهم +حصولي +حصون +حصونه +حصونهم +حصيات +حصيرة +حصيلة +حصيلتي +حصينا +حصينة +حصّته +حصّتها +حصّل +حضارات +حضاراتها +حضاراتهم +حضارة +حضارةً +حضارتنا +حضارته +حضارتها +حضارتهم +حضارتين +حضارى +حضاري +حضاريا +حضارياً +حضارية +حضاريتين +حضاريين +حضاريًّا +حضانة +حضر +حضرات +حضرة +حضرت +حضرته +حضرنا +حضره +حضرها +حضروا +حضريوما +حضن +حضناً +حضنت +حضور +حضورا +حضوراً +حضورنا +حضوره +حضورها +حضورهم +حضوري +حضّرت +حط +حطام +حطان +حطة +حطت +حطم +حطمته +حطمها +حطه +حطي +حطين +حطينا +حطّين +حطَّمت +حظ +حظا +حظائر +حظاً +حظر +حظه +حظهم +حظهما +حظوته +حظي +حظيت +حظيرة +حظّه +حـاج +حـاجاتهم +حـاجة +حـافزاً +حـالة +حـالياً +حـتي +حـجارة +حـجب +حـجم +حـدود +حـديثة +حـديقة +حـدٍ +حـرص +حـركة +حـسين +حـصر +حـصيلة +حـفر +حـفرة +حـفل +حـقق +حـققت +حـملات +حـمله +حـوالى +حـول +حـيث +حف +حفائر +حفازة +حفاظاً +حفاظًا +حفاوة +حفر +حفرات +حفرة +حفرت +حفرتها +حفرها +حفريات +حفرياته +حفرية +حفز +حفزاً +حفزت +حفظ +حفظت +حفظتها +حفظنا +حفظناها +حفظه +حفظها +حفظًا +حفل +حفلا +حفلات +حفلاته +حفلاتها +حفلاً +حفلة +حفلت +حفنة +حفني +حفياً +حفيداه +حفيدته +حفيده +حفيظة +حفيف +حفّارٌ +حفّت +حق +حقا +حقائب +حقائبنا +حقائبه +حقائبهم +حقائق +حقانى +حقانية +حقاً +حقب +حقبة +حقبتي +حقد +حقدا +حقده +حقفة +حقق +حققت +حققته +حققتها +حققنا +حققناه +حققه +حققها +حققوه +حقك +حقل +حقلاً +حقن +حقنا +حقنات +حقناً +حقنها +حقه +حقها +حقهم +حقوق +حقوقا +حقوقاً +حقوقك +حقوقكم +حقوقه +حقوقها +حقوقهم +حقوقهن +حقوقي +حقوقيًا +حقوقًا +حقول +حقولهم +حقي +حقيبة +حقيبته +حقيبتها +حقيبتي +حقير +حقيراً +حقيرة +حقيق +حقيقة +حقيقتنا +حقيقته +حقيقتها +حقيقي +حقيقيا +حقيقيان +حقيقياً +حقيقية +حقيقيون +حقيقيين +حقيقيًا +حقًا +حقّ +حقّاً +حقّة +حقّقه +حقّها +حقّهم +حقًّا +حقٌّ +حقَّاً +حك +حكام +حكامهم +حكايا +حكايات +حكاياته +حكاياتهم +حكاية +حكايتها +حكة +حكت +حكر +حكرا +حكم +حكما +حكماء +حكمة +حكمت +حكمتم +حكمته +حكمدار +حكمنا +حكمه +حكمها +حكمهم +حكموا +حكواتي +حكومات +حكوماته +حكوماتها +حكوماتهم +حكومة +حكومته +حكومتهم +حكومي +حكومية +حكوميين +حكوميًا +حكى +حكيم +حكيما +حكيمة +حكّمها +حل +حلا +حلاق +حلاقة +حلال +حلاوة +حلايب +حلاً +حلاّق +حلب +حلبة +حلبي +حلة +حلت +حلزون +حلف +حلفا +حلقات +حلقاته +حلقاتها +حلقة +حلقتان +حلقه +حلقها +حلقي +حلقية +حلقَ +حلكة +حللته +حلم +حلما +حلماً +حلمت +حلمتُ +حلمنا +حلمه +حلمها +حلمي +حلمية +حلميش +حلمًا +حلنا +حلها +حلو +حلوان +حلوة +حلول +حلولا +حلولاً +حلوى +حلي +حليب +حليبها +حليفا +حليفاً +حليفهم +حلين +حلّ +حلّت +حلّها +حلٌّ +حلَّت +حلَّها +حلُّ +حمأة +حماة +حماةٌ +حماد +حمار +حمارة +حماره +حماس +حماسا +حماسة +حماستهم +حماستي +حماسه +حماسها +حماسي +حماسًا +حماقة +حماكم +حمام +حماما +حمامات +حمامة +حمامتين +حمامى +حمانا +حماها +حماية +حمايته +حمايتها +حمايتهم +حمة +حمد +حمدا +حمدان +حمدت +حمده +حمدي +حمراء +حمرة +حمزة +حمص +حمصي +حمض +حمضه +حمضية +حمقاء +حمل +حملات +حملاتهم +حملاه +حملة +حملت +حملتا +حملتك +حملتنا +حملته +حملتها +حملتهم +حمله +حملها +حملوا +حملي +حمن +حمود +حمولة +حمويه +حمى +حمية +حميت +حميته +حميد +حميدة +حميم +حميما +حميماً +حميمة +حميمية +حميمين +حمَلة +حمّاس +حمّالاً +حمّام +حمّامها +حمّى +حمَّال +حنا +حنان +حناناً +حنانك +حنانه +حنانها +حنانيا +حناياها +حنبل +حنة +حنجرة +حنجرتي +حنضل +حنظلة +حنفية +حنفيو +حنق +حنقا +حنكة +حنونًا +حنيش +حنيفة +حنين +حنيناً +حنينه +حنينها +حوائج +حوائجا +حوائجهم +حوائط +حوائطه +حواجز +حوادث +حوادثها +حوار +حوارا +حوارات +حواراته +حواراتها +حواراً +حواره +حوارهما +حواري +حواريا +حوارية +حواريون +حواس +حواسي +حواشي +حواشيها +حواضر +حواف +حوافز +حوافه +حوافها +حوال +حوالات +حوالى +حوالي +حوالينا +حواه +حوتاً +حوته +حور +حوران +حورية +حوريتك +حوزة +حوش +حوض +حوضاً +حوضه +حوقل +حول +حولا +حولت +حولتنا +حولك +حولنا +حوله +حولها +حولهم +حولهما +حولوا +حولي +حوليات +حولية +حومة +حوّلاها +حوّلت +حوّلوا +حي +حيا +حياء +حياة +حياتك +حياتكم +حياتنا +حياته +حياتها +حياتهم +حياتهن +حياتي +حياتياً +حياتية +حياتين +حيادي +حيادية +حيارى +حيازة +حيازتي +حياضه +حياك +حياكة +حيال +حياله +حيالها +حيان +حياً +حية +حيث +حيثما +حيثيات +حيثياتها +حيثُ +حيدة +حيدر +حيرة +حيرته +حيرتي +حيز +حيزا +حيزاً +حيزها +حيض +حيل +حيلة +حين +حينئذ +حينا +حيناً +حينذاك +حينما +حينه +حينها +حينًا +حيوات +حيوان +حيوانا +حيوانات +حيواناتها +حيواناتهم +حيواناً +حيوانية +حيوانيًّا +حيوي +حيويا +حيوية +حيويته +حيويتها +حيويين +حييتُ +حيّ +حيّاه +حيّاً +حيّزا +حيّنا +حيّوا +حيٍّ +حيَّر +حيَّرت +حيِّزٍ +حَبِيب +حَجب +حَدَثٌ +حَسُن +حَسُنت +حَظٍّ +حَكِيمٌ +حَمَلنا +حَمَلَها +حُبَيْب +حُبَّه +حُزْنان +حُسن +حُسْنُ +حُشر +حُشرت +حُفظت +حُكمه +حُمص +حِبّ +حِيلة +حّدق +خ +خا +خائب +خائبا +خائبين +خائف +خائفا +خائفاً +خائفة +خائفون +خائفًا +خائن +خائنا +خائنات +خاب +خابيتا +خاتشا +خاتشادوريان +خاتم +خاتما +خاتمة +خادعة +خادم +خادما +خادمات +خادماً +خادمة +خادمًا +خارج +خارجا +خارجاً +خارجة +خارجه +خارجها +خارجي +خارجيا +خارجياً +خارجية +خارجين +خارجًا +خارطة +خارقاً +خارقة +خازنها +خاسرة +خاشع +خاشعين +خاص +خاصا +خاصان +خاصاً +خاصة +خاصةً +خاصرة +خاصمني +خاصيات +خاصية +خاصًا +خاصّة +خاصًّا +خاض +خاضت +خاضتها +خاضعان +خاضعاً +خاضعة +خاضها +خاضوا +خاطئ +خاطئاً +خاطئة +خاطب +خاطبت +خاطبتنا +خاطبه +خاطبوا +خاطر +خاطرنا +خاطره +خاطرها +خاطروا +خاطري +خاطفها +خاف +خافت +خافتاً +خافتة +خافض +خافضين +خافه +خافوا +خافوه +خافيا +خاكية +خال +خالة +خالت +خالتها +خالتي +خالد +خالدا +خالداً +خالدة +خالص +خالصا +خالصة +خالصين +خالطت +خالطه +خالف +خالفت +خالفه +خالقا +خالقاً +خالقه +خالقهم +خالك +خاله +خالها +خالي +خاليا +خالياً +خالية +خاليةٌ +خالٍ +خام +خامات +خامة +خامداً +خامرتها +خامس +خامسا +خامساً +خاملا +خاملةً +خان +خانة +خانتني +خانته +خانتها +خانق +خانقاً +خانقة +خانقه +خانني +خانوف +خاوية +خاويًا +خايف +خبأه +خبا +خباز +خبايا +خبث +خبثًا +خبر +خبرا +خبراء +خبرائه +خبرائهم +خبرات +خبراته +خبراتهم +خبراتي +خبراً +خبرة +خبرت +خبرتنا +خبرته +خبرتها +خبرتي +خبز +خبزك +خبي +خبيئة +خبيث +خبيثا +خبيثة +خبير +خبيرا +خبيراً +خبيرة +خبيرًا +ختام +ختاما +ختك +ختم +ختمتها +ختمناه +ختمه +ختمها +خجل +خجلا +خجلاً +خجلة +خجلها +خجلي +خجول +خجولاً +خجولة +خد +خداع +خداعا +خداعنا +خداعها +خداعي +خداعية +خدر +خدره +خدرها +خدش +خدعة +خدعنا +خدعه +خدعهم +خدم +خدمات +خدماته +خدماتها +خدماتي +خدمة +خدمت +خدمتك +خدمته +خدمتهم +خدمه +خدمى +خدمي +خدمية +خده +خدها +خدوجة +خدي +خديجة +خديها +خذ +خذت +خرائب +خرائط +خراب +خرابا +خرابنا +خرابها +خراج +خراساني +خرافات +خرافة +خرافيا +خرافية +خربة +خربشات +خرج +خرجت +خرجتُ +خرجنا +خرجوا +خرجيتي +خرزة +خرساباد +خرطوشة +خرف +خرفها +خرق +خروج +خروجا +خروجاً +خروجك +خروجه +خروجها +خروجهم +خروجي +خروجًا +خروف +خريبكة +خريبيش +خريج +خريجاً +خريجو +خريجى +خريجي +خريجينا +خريجيه +خريجيها +خريطة +خريف +خزائن +خزافي +خزان +خزانات +خزانة +خزانته +خزع +خزف +خزفية +خسائر +خسائره +خسارة +خسارتهم +خساو +خساً +خسر +خسرت +خسرته +خسرنا +خسرناه +خسره +خسرو +خسيس +خشب +خشبة +خشبته +خشبي +خشبيا +خشبية +خشبيّ +خشبيّة +خشخاش +خشخشة +خشخشت +خشلاستيك +خشنة +خشونة +خشي +خشية +خشيت +خشيتهم +خص +خصائص +خصائصه +خصائصها +خصاصة +خصال +خصالا +خصب +خصبا +خصبها +خصته +خصراً +خصره +خصرها +خصص +خصصت +خصصه +خصلة +خصلةً +خصم +خصوبة +خصوص +خصوصا +خصوصاً +خصوصي +خصوصيات +خصوصياته +خصوصياتها +خصوصية +خصوصيتنا +خصوصيته +خصوصيتها +خصوصًا +خصوم +خصومات +خصومة +خصومه +خصومها +خصيب +خصية +خصيصا +خصيصاً +خصيصًا +خضاب +خضار +خضت +خضرا +خضراء +خضراوان +خضرة +خضع +خضعت +خضعوا +خضم +خضمّ +خضوع +خضوعها +خضير +خط +خطأ +خطأه +خطأها +خطأين +خطأً +خطئه +خطئي +خطا +خطاب +خطابا +خطابات +خطاباتنا +خطاباته +خطاباتهم +خطابنا +خطابه +خطاط +خطانا +خطاه +خطاها +خطاي +خطايا +خطاً +خطب +خطبا +خطباء +خطباءـ +خطباؤه +خطبة +خطبته +خطبه +خطة +خطت +خطته +خطتهم +خطتي +خطر +خطرا +خطراً +خطرة +خطرت +خطرجديداً +خطرن +خطره +خطرها +خطرًا +خطط +خططاً +خططك +خططنا +خططها +خططهم +خططًا +خطـر +خطف +خطفت +خطها +خطوات +خطواتك +خطواتكم +خطواتنا +خطواته +خطواتها +خطواتي +خطواتُه +خطوة +خطوتها +خطوتين +خطورة +خطورته +خطورتها +خطوط +خطوطا +خطوطاً +خطوطه +خطوطها +خطى +خطي +خطيئة +خطيب +خطيبا +خطير +خطيرا +خطيراً +خطيرة +خطيرًا +خطين +خف +خفاءٍ +خفاجي +خفة +خفت +خفتت +خفتُ +خفض +خفف +خفق +خفقت +خفوت +خفي +خفيا +خفية +خفير +خفيرا +خفيض +خفيف +خفيفاً +خفيفة +خفيًا +خفّف +خفَّت +خلا +خلاء +خلابة +خلات +خلاص +خلاصا +خلاصة +خلاف +خلافا +خلافات +خلافاتنا +خلافاته +خلافاً +خلافة +خلافه +خلافها +خلافهم +خلافًا +خلاق +خلاقا +خلاقة +خلال +خلاله +خلالها +خلالهم +خلالهما +خلايا +خلايانا +خلاياهم +خلت +خلجان +خلخلة +خلد +خلدت +خلده +خلدها +خلدون +خلسة +خلصت +خلصوا +خلصونا +خلط +خلطة +خلطها +خلع +خلعا +خلعة +خلف +خلفاء +خلفاؤه +خلفان +خلفة +خلفته +خلفتها +خلفك +خلفنا +خلفه +خلفها +خلفهم +خلفوا +خلفي +خلفيات +خلفية +خلفيتي +خلق +خلقا +خلقاً +خلقت +خلقتها +خلقك +خلقناكم +خلقني +خلقه +خلقها +خلقهم +خلقي +خلقية +خلقًا +خلك +خلل +خللا +خللاً +خلني +خلو +خلواته +خلوة +خلوتنا +خلود +خلوي +خلوية +خلي +خلية +خليته +خليتها +خليتيني +خليج +خليجي +خليجيا +خليجية +خليط +خليطا +خليطاً +خليفة +خليفته +خليق +خليقة +خليل +خليلات +خليلاته +خلّدها +خلّف +خلّفنا +خلُّوا +خمارات +خمارهن +خمارويه +خماسي +خمس +خمسة +خمســـة +خمسمائة +خمسها +خمسون +خمسية +خمسين +خمسينيات +خمسًا +خمسٌ +خمنت +خمور +خمولاً +خمير +خميرة +خميس +خمّن +خنادقها +خنجر +خندق +خندقا +خندقاً +خنزير +خنزيري +خنق +خنقا +خنوع +خواتم +خواتمه +خوادم +خوارق +خواص +خواصه +خواصها +خواطر +خوان +خوذا +خوذات +خوري +خورية +خوسيه +خوض +خوف +خوفا +خوفاً +خوفه +خوفها +خوفهما +خوفي +خوفًا +خولة +خولوا +خونة +خيار +خيارا +خيارات +خياراته +خياراً +خيارنا +خيارين +خياشيمها +خياط +خيال +خيالات +خيالنا +خياله +خيالها +خيالهم +خيالي +خيالية +خيام +خيامه +خيامهم +خيامية +خيانة +خيانته +خيبات +خيبة +خيبت +خيبر +خير +خيرا +خيرات +خيراته +خيراً +خيرة +خيرهما +خيريا +خيرية +خيريتين +خيرًا +خيزراناتهم +خيزرانة +خيزرانته +خيط +خيطاً +خيفة +خيل +خيلاء +خيم +خيمة +خيمت +خيمته +خيوط +خيوطها +خيوطٍ +خيولهم +خيّبت +خيّل +خيّم +خيِّر +خيِّل +خَبِر +خَرَّجَت +خَصِيصة +خَلَقْنَاكُم +خَيْرٌ +خُفِّض +خُلق +خُلِقت +خُلِقَ +خُلّدت +خُلِّفوا +خُمس +خُيّر +خُيّل +د +دءوب +دأب +دأبت +دأبه +دأبوا +دأبي +داء +داءً +دائبون +دائرا +دائراً +دائرة +دائرته +دائرتها +دائري +دائرية +دائم +دائما +دائماً +دائمة +دائمين +دائمًا +دابة +دابر +دابره +دابروسكا +داتاكرايم +داخت +داخـل +داخل +داخلا +داخلاً +داخلة +داخلك +داخله +داخلها +داخلهم +داخلي +داخليا +داخلياً +داخلية +داخليًا +دار +دارا +دارالمأمون +داراً +دارة +دارت +دارتنا +دارته +دارج +دارس +دارسي +دارسيها +دارك +دارنا +داره +دارها +دارهم +دارون +دارويش +داروين +داري +داريا +دارين +داريو +داس +داسه +داسوا +داعب +داعبها +داعماً +داعمة +داعمي +داعي +داعيا +داعيات +داعياً +داعية +داعيكم +داعيًا +داعٍ +دافئ +دافئا +دافئة +دافع +دافعا +دافعاً +دافعة +دافعت +دافعه +دافعها +دافعهم +دافعوا +دافعي +دافقاً +دافنشي +دافيد +داكن +داكنا +داكنة +دال +دالة +دالية +دام +داما +دامت +دامس +داميان +دامية +دان +دانت +دانتي +دانلوس +داني +دانيال +داهم +داهمت +داهمتني +داهمنا +داهمه +داهمها +داود +داومت +داون +داوود +داى +داي +دايان +دايجنيوس +دايفيد +دايك +دايملر +دب +دباباته +دباباتها +دبابيس +دبالية +دباً +دبت +دبجها +دبدوب +دبلوم +دبلوماسيون +دبلوماسيين +دبلوماسيينا +دبلومه +دبلومًا +دبليو +دبى +دبي +دبيب +دبّين +دبٍّ +دة +دترويت +دجاج +دجلة +دجون +دحضا +دحضت +دحضها +دخان +دخانياً +دخل +دخلا +دخلاء +دخلاً +دخلت +دخلتني +دخلتها +دخلن +دخلنا +دخلناه +دخله +دخلها +دخلهم +دخلوا +دخلوها +دخن +دخول +دخولك +دخولنا +دخوله +دخولها +دخولهم +دخولهن +دخولي +دخيل +دخيلة +درء +دراجات +دراجاتهم +دراجة +دراجتك +دراجته +دراسات +دراساتنا +دراساته +دراساتها +دراساتهم +دراساتي +دراسة +دراستك +دراستكم +دراستنا +دراسته +دراستها +دراستهم +دراستي +دراسي +دراسيا +دراسية +دراما +دراماتيكي +دراماتيكية +درامي +دراميا +درامية +دراهم +دراية +درب +دربا +دربتني +دربي +درة +درج +درجات +درجاتك +درجاته +درجاتها +درجاتهم +درجاً +درجة +درجت +درجته +درجتي +درجتين +درجنا +درجهم +درجي +دردشة +درز +درزن +درس +درسا +درساً +درست +درستها +درستُ +درسناها +درسه +درسها +درسهم +درسوا +درسوه +درسًا +درع +درعمي +درعمية +درقاتها +درقة +درك +درنة +درهام +درهم +دروب +دروبا +دروس +دروسا +دروسه +دروسها +دروسهم +دروسي +دروسًا +دروع +درويش +دري +دريد +درّاجة +درّس +درّست +درَّس +درَّست +درُّك +دزيرة +دس +دسائس +دساماته +دستور +دستوري +دستورية +دسست +دسمة +دسوقي +دسوه +دش +دشتاً +دشنت +دع +دعا +دعاء +دعائم +دعائي +دعائية +دعاة +دعارة +دعان +دعانا +دعاني +دعاه +دعاها +دعاهم +دعاوى +دعاية +دعبل +دعت +دعته +دعك +دعم +دعماً +دعمت +دعمه +دعمها +دعمًا +دعنا +دعني +دعوا +دعوات +دعواي +دعوة +دعوةً +دعوت +دعوتك +دعوته +دعوتها +دعوتهم +دعوتهما +دعوتهن +دعوتي +دعونا +دعوى +دعويا +دعوية +دعى +دعي +دعيت +دعيج +دعينا +دعيني +دعيه +دفء +دفات +دفاتر +دفاتره +دفاع +دفاعات +دفاعاتها +دفاعاً +دفاعه +دفاعها +دفاعي +دفاعية +دفاعًا +دفة +دفتر +دفتراً +دفتري +دفع +دفعا +دفعاه +دفعاً +دفعة +دفعت +دفعتنا +دفعتني +دفعته +دفعتها +دفعك +دفعنا +دفعني +دفعه +دفعها +دفعهم +دفق +دفن +دفنت +دفنها +دفوف +دفيئة +دق +دقائق +دقائقنا +دقائقه +دقائقها +دقات +دقة +دقت +دقتها +دققت +دققنا +دقلة +دقيق +دقيقا +دقيقاً +دقيقة +دقيقتان +دقيقًا +دك +دكا +دكان +دكانه +دكتاتور +دكتاتورنا +دكتاتوريات +دكتاتورية +دكتور +دكتوراة +دكتوراه +دكَّاً +دل +دلائل +دلافيدا +دلالات +دلالاتها +دلالة +دلالته +دلالتها +دلت +دلتا +دلفت +دلفنا +دلفي +دلكاسال +دلنا +دلني +دلهي +دلوها +دليل +دليلا +دليلاً +دليلك +دليلنا +دليله +دليلي +دلّ +دلّت +دم +دماء +دماؤه +دمائها +دمار +دمامل +دمت +دمتم +دمث +دمج +دمجها +دمجهما +دمر +دمرت +دمرتنا +دمشق +دمشقي +دمشقية +دمع +دمعة +دمعتان +دمعته +دمعتي +دمك +دمل +دمنا +دمنهور +دمه +دمها +دمهم +دمور +دموع +دموعا +دموعك +دموعه +دموعها +دموعهما +دموعي +دموي +دمويا +دموية +دمى +دمي +دمياط +دميان +دمية +دميرة +دنا +دنانير +دندرة +دندشي +دندني +دنس +دنفر +دنقل +دنكسن +دنوا +دنوت +دنيا +دنيانا +دنياه +دنياهما +دنياي +دنيس +دنيور +دنيوي +دنيوية +ده +دها +دهاء +دهاك +دهان +دهراً +دهسها +دهش +دهشاً +دهشة +دهشته +دهشتها +دهشتهم +دهشتي +دهشًا +دهلي +دهليز +دهمتها +دهن +دهوراً +دهوك +دهون +دو +دواء +دواءين +دوائر +دوائرنا +دوائرها +دوائي +دوائياً +دوائية +دواب +دوابهم +دواخل +دواخلها +دوار +دوارات +دوارًا +دواسة +دواستي +دواعي +دوافع +دوافعه +دوافعها +دواليك +دوام +دوامات +دوامة +دوامه +دوامها +دواوين +دواوينها +دواويني +دوبلكس +دوبيتران +دوتش +دوجلاس +دوخنا +دودة +دودو +دودي +دور +دورا +دورات +دوراتها +دوران +دورانها +دوراً +دورة +دورةً +دورتها +دورتين +دوركاس +دورنا +دوره +دورها +دورهم +دوروثيا +دوري +دوريات +دورياتهم +دوريان +دورية +دورين +دورًا +دورٍ +دوز +دوزا +دوفان +دوق +دول +دولا +دولاب +دولاباً +دولار +دولارا +دولارات +دولاراً +دولارين +دولارًا +دولاكروا +دولاً +دولة +دولتنا +دولتهم +دولتي +دولتين +دولفين +دولفينا +دولنا +دولها +دولهم +دولي +دوليا +دوليان +دولياً +دولية +دوليون +دوليين +دوليًّا +دوم +دوما +دوماً +دومو +دومون +دومينيك +دومًا +دون +دونانا +دونكن +دونكيشوتية +دونم +دونما +دونمات +دونماً +دوننا +دونه +دونها +دوني +دونية +دوهني +دوى +دوي +دويا +دوّامة +دوّت +دوّنها +دوّى +دى +دي +دياب +ديار +دياركم +ديارنا +ديارها +ديارهم +ديافينيج +ديان +ديب +ديباجة +ديبانكار +ديبوفوار +دية +ديترويت +ديتريش +ديدان +دير +ديركله +ديزاين +ديزل +ديزنى +ديزني +ديس +ديساي +ديسك +ديسمبر +ديسيبل +ديفيد +ديفيز +ديك +ديكا +ديكتاتورا +ديكتاتوريات +ديكستر +ديكور +ديل +ديلا +ديلاتشيلا +ديلاكروا +ديلمون +ديلويت +ديليب +ديمتريو +ديمقراطي +ديمقراطيا +ديمقراطياً +ديمقراطية +ديمقريطس +ديملر +ديموقراطية +ديمومة +دين +دينا +دينار +دينارا +دينارين +دينارًا +دينامي +ديناميا +ديناميات +دينامية +ديناميت +ديناميتها +ديناميكية +ديناً +دينك +ديننا +دينه +دينها +دينهام +دينهم +ديني +دينية +دينيًّا +دينًا +دينٌ +ديهم +ديوان +ديواناً +ديوانك +ديوانه +ديوانها +ديواني +ديوانًا +ديوبند +ديوبندورف +ديوتى +ديودوروس +ديور +ديوك +ديون +ديونز +ديونها +دييجو +دَرَجَاتٍ +دَرَوْهُ +دَعَتَها +دُبَيْب +دُخانا +دُرِسَتْ +دُعيَ +دُفن +دُوز +دُونَ +دُويْن +دِيَارِهِمْ +ذ +ذئاب +ذئب +ذا +ذائدا +ذائع +ذابت +ذابلة +ذات +ذاتـية +ذاتنا +ذاته +ذاتها +ذاتهم +ذاتي +ذاتيا +ذاتياً +ذاتية +ذاتين +ذاتيًا +ذاع +ذاعت +ذاق +ذاك +ذاكرا +ذاكراتي +ذاكراً +ذاكرة +ذاكرةً +ذاكرتك +ذاكرتنا +ذاكرته +ذاكرتها +ذاكرتهم +ذاكرتي +ذاكرنا +ذاكري +ذاكرًا +ذان +ذاهبا +ذاهبة +ذاهبون +ذاهل +ذاهلا +ذبابة +ذبالتها +ذبح +ذبذبة +ذبلت +ذخائر +ذخرها +ذخيرة +ذر +ذرات +ذراته +ذراع +ذراعا +ذراعاً +ذراعه +ذراعي +ذراعين +ذراعيه +ذراعيها +ذرة +ذرةْ +ذرعاً +ذرف +ذروة +ذروته +ذروتها +ذرى +ذري +ذرية +ذريتك +ذريته +ذريعا +ذرّة +ذعراً +ذعروا +ذقنه +ذقنَه +ذقنَهُ +ذكاء +ذكاءه +ذكائه +ذكر +ذكراه +ذكراها +ذكراهم +ذكراً +ذكرت +ذكرتم +ذكرتنا +ذكرته +ذكرتها +ذكرتهم +ذكرنا +ذكرناه +ذكرناها +ذكرني +ذكره +ذكرها +ذكرهم +ذكروا +ذكرى +ذكريات +ذكرياته +ذكرياتي +ذكور +ذكوري +ذكورية +ذكوريّ +ذكي +ذكيا +ذكية +ذل +ذلك +ذلكم +ذلكَ +ذللك +ذله +ذليل +ذمة +ذنب +ذنباً +ذنبه +ذنبها +ذنوبه +ذهابا +ذهاباً +ذهابنا +ذهابها +ذهابهم +ذهابهن +ذهابي +ذهانية +ذهب +ذهبا +ذهباً +ذهبت +ذهبنا +ذهبوا +ذهبى +ذهبي +ذهبيات +ذهبية +ذهبيتان +ذهل +ذهلت +ذهن +ذهنك +ذهنه +ذهنها +ذهنهم +ذهني +ذهنيا +ذهنياً +ذهنية +ذهول +ذو +ذوات +ذواتنا +ذواتهم +ذواقًا +ذواكر +ذوبان +ذوق +ذوقك +ذوو +ذوى +ذوي +ذويه +ذويها +ذويهم +ذويهما +ذى +ذي +ذيل +ذيلا +ذيله +ذيلها +ذيوع +ذَكَرٍ +ذَلِكَ +ذُخْر +ذُكر +ذُو +ر +رءوس +رءوسنا +رءوسهم +رءوسهن +رآنا +رآني +رآه +رآها +رآهم +رآهن +رأت +رأتني +رأته +رأس +رأسا +رأساً +رأسك +رأسمال +رأسماله +رأسمالي +رأسمالياً +رأسه +رأسها +رأسهم +رأسي +رأسيا +رأسَهُ +رأوا +رأوه +رأوْه +رأى +رأي +رأيا +رأياً +رأيت +رأيتك +رأيتم +رأيتموها +رأيتني +رأيته +رأيتها +رأيك +رأيكم +رأيكِ +رأينا +رأيناه +رأيناها +رأيه +رأيها +رأيهم +رأيي +رأيين +رأيًا +رأيٌ +رؤاه +رؤساء +رؤساءه +رؤسائه +رؤوس +رؤوسنا +رؤوسها +رؤوسهم +رؤوف +رؤى +رؤيا +رؤية +رؤيتنا +رؤيته +رؤيتها +رؤيتهم +رؤيتي +رئات +رئاسة +رئاسته +رئاستها +رئاسي +رئاسيا +رئاسية +رئة +رئتاي +رئته +رئتيه +رئتيها +رئتيّ +رئويّ +رئيس +رئيسا +رئيسان +رئيساً +رئيسة +رئيسه +رئيسها +رئيسى +رئيسي +رئيسيا +رئيسيان +رئيسياً +رئيسية +رئيسيتين +رئيسيين +رئيسيّ +رئيسيًّا +رئيسًا +را +راءول +رائجة +رائحا +رائحة +رائحته +رائحتي +رائد +رائدا +رائدان +رائداً +رائدة +رائدًا +رائع +رائعا +رائعاً +رائعة +رائعته +رائعتها +رابضا +رابضة +رابط +رابطا +رابطة +رابطت +رابع +رابعا +رابعاً +رابعة +رابينوفيتش +راتب +راتباً +راتبه +راتبي +راتشيل +راتينستير +راجع +راجعاً +راجعت +راجعتني +راجعته +راجعنا +راجعني +راجية +راجيف +راح +راحة +راحةً +راحت +راحته +راحتهم +راحه +راحوا +راحيل +رادع +رادعاً +رادعة +رادو +راديسون +راديكالية +راديو +راس +راسب +راسة +راسخ +راسخة +راسخةٌ +راسك +راسم +راسماً +راسه +راسية +راسين +راشد +راشيل +راض +راضة +راضون +راضى +راضي +راضيا +راضية +راضين +راضيًا +راضٍ +راعى +راعي +راعيا +راعية +راعٍ +رافد +رافدا +رافداً +رافضا +رافضة +رافضًا +رافع +رافعات +رافعة +رافعي +رافعًا +رافق +رافقت +رافقتنا +رافقتني +رافقته +رافقنا +رافقه +رافقها +رافين +راق +راقات +راقبت +راقبه +راقت +راقدة +راقص +راقصا +راقصة +راقصي +راقني +راقي +راقية +راكاح +راكب +راكباً +راكبي +راكبًا +راكدا +راكضا +راكضة +راكضًا +رالف +رام +راماي +رامبو +رامز +رامي +ران +راهب +راهبات +راهن +راو +راوالبندي +راود +راودتني +راودني +راوند +راوية +راي +رايات +راية +رايةُ +رايت +رايته +رايتهما +رايحين +رايس +راينا +رايني +رايي +رب +ربات +رباح +رباط +رباطة +رباعي +رباعيات +رباعية +رباني +ربانية +ربة +ربت +ربتت +ربحية +ربط +ربطا +ربطة +ربطت +ربطتهم +ربطه +ربطها +ربطوا +ربع +ربعا +ربعه +ربك +ربكة +ربكم +ربما +ربنا +ربه +ربو +ربوة +ربوع +ربوعها +ربوية +ربي +ربيبتها +ربيع +ربيعا +ربيعاً +ربيعة +ربيعها +ربيعي +ربيعًا +ربّت +ربّما +ربّها +ربّى +ربًّا +ربَّة +ربَّك +رت +رتب +رتبة +رتبها +رتبوا +رتقها +رتلاً +رتوش +رتيبة +رتّب +رثة +رثًّا +رج +رجاء +رجاءً +رجائي +رجات +رجال +رجالا +رجالات +رجالاته +رجالاً +رجاله +رجالها +رجب +رجت +رجح +رجحان +رجحت +رجس +رجساً +رجع +رجعة +رجعت +رجعوا +رجعي +رجعياً +رجفان +رجفة +رجل +رجلا +رجلان +رجلاً +رجلك +رجله +رجلها +رجلي +رجلين +رجليه +رجلٍ +رجوع +رجوعا +رجوعه +رجوك +رجولة +رجولتي +رحاب +رحابة +رحابتها +رحابه +رحابها +رحالة +رحالنا +رحالها +رحاها +رحب +رحبا +رحباني +رحبة +رحبت +رحبوا +رحت +رحـلات +رحـلاتها +رحـمه +رحل +رحلات +رحلاته +رحلاتها +رحلاتهم +رحلاتي +رحلة +رحلت +رحلتك +رحلتنا +رحلته +رحلتها +رحلتهم +رحلتي +رحلتين +رحلنا +رحلوا +رحم +رحمة +رحمته +رحمه +رحمها +رحمهم +رحمون +رحمين +رحومًا +رحية +رحيق +رحيل +رحيله +رحيلها +رحيلهم +رحيلي +رحيم +رحيماً +رحيمة +رحّالة +رخاء +رخامي +رخص +رخصا +رخصة +رخواً +رخوة +رخويات +رخيص +رخيصا +رخيصة +رد +ردا +رداء +رداءة +رداً +ردة +ردت +ردح +ردحا +ردد +رددت +ردده +رددها +ردع +ردعاً +ردعه +ردم +ردمها +ردني +رده +ردها +ردهاتها +ردهم +ردود +ردوده +ردي +رديء +ردية +ردًًا +ردّ +ردّت +ردّد +ردّك +ردّه +ردّها +ردًّا +ردَّ +ردُّ +رذاذ +رذاذات +رذيلة +رزانة +رزحت +رزق +رزقا +رزقت +رزقكم +رزقنا +رزقه +رزقهم +رزقي +رزم +رزمة +رزين +رس +رسا +رسائل +رسائلنا +رسائله +رسائلها +رسائلهم +رسائلي +رسالة +رسالتك +رسالتنا +رسالته +رسالتها +رسالتهم +رسالتي +رسالتين +رسام +رساما +رساماً +رسبت +رسل +رسم +رسما +رسمت +رسمته +رسمتها +رسمتُ +رسمه +رسمها +رسموا +رسمي +رسميا +رسمياً +رسمية +رسميًا +رسه +رسوبي +رسوبية +رسول +رسولا +رسوله +رسوم +رسوما +رسومات +رسوماته +رسوماتها +رسوماتهم +رسوماتي +رسوماً +رسومها +رسّخت +رسّخها +رش +رشاد +رشاقة +رشح +رشحات +رشحت +رشحته +رشحني +رشد +رشدي +رشرشات +رششت +رشف +رشفة +رشفته +رشفوا +رشه +رشوان +رشيد +رشيق +رشيقة +رشّه +رصاص +رصاصا +رصاصات +رصاصاً +رصاصة +رصانة +رصانةً +رصد +رصدت +رصدنا +رصده +رصدها +رصف +رصيد +رصيدا +رصيداً +رصيدك +رصيدنا +رصيده +رصيدي +رصيف +رصين +رض +رضا +رضاء +رضاك +رضاه +رضخت +رضوان +رضوخ +رضوض +رضوى +رضوي +رضى +رضي +رضية +رضيع +رضيعها +رضيعًا +رضينا +رطب +رطبا +رطبة +رطبها +رطبًا +رطل +رطلاً +رطوبة +رع +رعاة +رعاف +رعاني +رعاها +رعاياه +رعاياها +رعاياهم +رعاية +رعايته +رعايتهم +رعب +رعبا +رعبهم +رعبٌّ +رعتها +رعد +رعشة +رعنان +رعونة +رعيته +رعيتها +رعيتهِ +رعيل +رعيلاً +رفات +رفادات +رفاعة +رفاق +رفاقاً +رفاقه +رفاقي +رفاه +رفاهة +رفاهية +رفجان +رفح +رفد +رفدها +رفض +رفضت +رفضه +رفضها +رفضهم +رفضوه +رفع +رفعة +رفعت +رفعتها +رفعتْ +رفعنا +رفعناه +رفعه +رفعها +رفق +رفقة +رفقها +رفوف +رفيع +رفيعا +رفيعاً +رفيعة +رفيعًا +رفيف +رفيق +رفيقاتها +رفيقة +رفيقتها +رفيقك +رفيقنا +رفيقه +رفيقيه +رفْض +رقائق +رقابة +رقابهم +رقابي +رقابية +رقاقة +رقاقته +رقباء +رقبة +رقبته +رقبتي +رقة +رقتك +رقدته +رقر +رقش +رقص +رقصات +رقصة +رقصنا +رقع +رقعة +رقم +رقما +رقماً +رقمه +رقمية +رقيب +رقيبه +رقيق +رقيقا +رقيقاً +رقيقة +رقّموها +ركائز +ركاب +ركابه +ركابها +ركارت +ركام +ركب +ركبة +ركبت +ركبتني +ركبتيه +ركبوا +ركبي +ركته +ركز +ركزا +ركزت +ركزوا +ركض +ركضت +ركضٍ +ركع +ركعا +ركعة +ركعتين +ركلها +ركن +ركنا +ركنان +ركناً +ركنتُها +ركنين +ركنًا +ركوب +ركود +ركوداً +ركون +ركيزة +ركيزتان +ركيزتين +ركّز +ركّزت +رماد +رماده +رمادهم +رمادية +رماك +رمال +رماه +رماها +رمته +رمحها +رمز +رمزا +رمزاً +رمزت +رمزي +رمزيا +رمزية +رمسيس +رمشة +رمضان +رمضاني +رمق +رمقنا +رمقه +رمل +رملي +رملية +رمم +رموز +رموزها +رمى +رمي +رمية +رميـ +رن +رنبديل +رنة +رنين +رنينه +ره +رهائن +رهان +رهبان +رهبة +رهص +رهصت +رهن +رهنا +رهيب +رهين +روائح +روائع +روائي +روائياً +روائية +روابط +رواتب +رواتبهم +رواج +رواجا +رواجاً +رواجها +رواجًا +رواد +روادا +رواداً +رواده +روادها +رواسب +روافد +رواق +روالبندي +روان +رواندا +رواه +روايات +رواياتك +رواياته +رواياتهم +رواياتي +رواية +روايتان +روايتك +روايته +روايتها +روايتي +روب +روباكن +روبرت +روبرتس +روبرتية +روبرستون +روبي +روبية +روبيرون +روتردام +روتردمام +روتنبرج +روتين +روتينية +روجت +روجر +روح +روحا +روحاني +روحانية +روحاً +روحنا +روحه +روحها +روحي +روحية +روحيهما +روحًا +رودس +روز +روزفلت +روزماري +روزنامة +روس +روسا +روسو +روسي +روسيا +روسية +روسيين +روش +روشتات +روضة +روضتان +روع +روعة +روعت +روعه +روعى +روعي +روعيت +روفائيل +رول +رولاند +رولانديس +روما +رومان +رومانتيكي +رومانسي +رومانوس +روماني +رومنطيقياً +رومنطيقية +رومي +روميانتسيف +روميل +رونالد +رونالدو +رونقا +رونقاً +رونقًا +روى +روي +رويا +رويال +روية +رويت +رويج +رويدا +رويداً +روّاد +روّادها +روّجت +روَّاد +ري +رياء +رياح +رياحين +ريادة +رياض +رياضة +رياضي +رياضيا +رياضيات +رياضية +ريال +ريالاً +ريان +رياناً +ريب +ريبانكس +ريبة +ريبموند +ريبورتاجات +ريبَ +ريتشارد +ريتشاردز +ريتشمان +ريثما +ريجان +ريح +ريحان +ريحانا +ريختر +ريد +ريزا +ريزنس +ريش +ريشة +ريشتك +ريشته +ريشه +ريشها +ريع +ريعان +ريعه +ريعها +ريعي +ريف +ريفل +ريفولي +ريفي +ريفية +ريفيرا +ريقا +ريقه +ريقها +ريكيافيك +ريلاكس +ريلكه +ريمارك +ريمان +ريمر +ريمو +ريمون +ريموند +رينارد +رينو +رينيه +ريو +ريّ +ريّها +رَبَّة +رَبَّتك +رَبُّهُمْ +رَجعَة +رَجْعَة +رَويَّها +رُجار +رُحل +رُزقت +رُشحت +رُصدت +رُفض +رُفعت +رُفِعَتْ +رِجل +رِجَالٌ +رّئويّ +رَّبِّ +ز +زئبقي +زئير +زائد +زائدا +زائداً +زائدة +زائدتيه +زائر +زائرا +زائراً +زائرة +زائره +زائريه +زائريهم +زائرًا +زائف +زائفة +زائل +زائلا +زائلة +زات +زاحفة +زاحفين +زاحمتهم +زاخر +زاخرا +زاخرة +زاد +زادا +زاداً +زادت +زادته +زاده +زادًا +زار +زارا +زارت +زارتنا +زارتني +زارحي +زارع +زارنا +زاره +زارها +زاروا +زاروب +زازا +زاعماً +زاعمين +زاكسن +زال +زالت +زالوا +زامبيا +زامة +زامل +زاهد +زاهدا +زاهر +زاهن +زاهي +زاهية +زاوية +زاويته +زاويتي +زايد +زايلر +زبائن +زبائنه +زبدة +زبدها +زبيب +زبيبة +زبيد +زبيدة +زج +زجاج +زجاجات +زجاجاتهم +زجاجة +زجاجته +زجاجه +زجاجها +زجاجي +زجاجية +زجت +زجر +زجراً +زحام +زحاماً +زحف +زحفت +زحل +زحمة +زخارف +زخارفه +زخرف +زخرفة +زخرفها +زخرفيان +زخرفية +زخريّا +زخم +زخماً +زخمة +زد +زر +زراعات +زراعاتهم +زراعة +زراعتها +زراعي +زراعية +زراعيين +زراعيًّا +زرافات +زرت +زرته +زرتها +زرد +زرزور +زرع +زرعناها +زرعه +زرعها +زرق +زرقاء +زرقة +زرناه +زرناها +زرنيخ +زري +زرياب +زريق +زعامة +زعق +زعقت +زعلت +زعلي +زعم +زعماء +زعمائه +زعمهم +زعموا +زعنفته +زعيم +زعيما +زعيمها +زعيمهم +زفاف +زفافها +زفافهما +زفر +زفراتي +زفس +زفيرا +زقاق +زقر +زقزقاتها +زقزقة +زقطان +زقورات +زكاة +زكاته +زكام +زكامن +زكري +زكريا +زكور +زكي +زكية +زلة +زلت +زلته +زلزال +زلزالا +زلزالاً +زلزلة +زلل +زلنا +زليتن +زليخة +زمام +زمان +زماننا +زمانه +زمانها +زماني +زمانية +زمبرك +زمرة +زمرتها +زمزم +زمكان +زمكاني +زملاء +زملاؤكم +زملاؤه +زملاؤهم +زملائنا +زملائه +زملائها +زملائهم +زملائي +زمن +زمنا +زمناً +زمننا +زمنه +زمنها +زمنى +زمني +زمنياً +زمنية +زمنين +زمنٍ +زمهرير +زمية +زميل +زميلا +زميلاً +زميلة +زميلتها +زميلتي +زميلنا +زميله +زميلها +زميلي +زناد +زنجبار +زنجي +زنجية +زنزانة +زنكي +زنوج +زهاء +زهدا +زهر +زهران +زهرة +زهرتها +زهرتين +زهور +زهورا +زهيد +زهيدة +زواج +زواجك +زواجنا +زواجه +زواجها +زواجي +زوار +زوارنا +زواره +زواريبه +زوال +زوالها +زوايا +زواياه +زوبعة +زوج +زوجا +زوجات +زوجاتهم +زوجاً +زوجة +زوجته +زوجتي +زوجك +زوجه +زوجها +زوجي +زود +زودت +زوربا +زوركين +زوروا +زوريخ +زوزانثللي +زوزو +زوزي +زويد +زويل +زويلة +زوّدوا +زي +زيا +زياد +زيادات +زيادة +زيادته +زيارات +زياراتنا +زياراته +زياراتها +زياراتي +زيارة +زيارتك +زيارتنا +زيارته +زيارتها +زيارتهم +زيارتهما +زيارتى +زيارتي +زيت +زيتون +زيتية +زيجات +زيجازجروفيتش +زيد +زيدان +زيدت +زيرمات +زيف +زيفاً +زيفه +زين +زينب +زينة +زينت +زينته +زينتها +زينوا +زيهم +زيورخ +زيوريخ +زيوس +زيي +زيّه +زَبَد +زُجّ +زِدْنِي +س +سآتيك +سآخذ +سأبحث +سأبدأ +سأبعث +سأبيع +سأتأقلم +سأتجاوز +سأترك +سأتركك +سأتزوج +سأجد +سأجعل +سأجعله +سأجلب +سأجيب +سأحاول +سأحدث +سأحدثكم +سأحدثكِ +سأحضر +سأحطمك +سأحلم +سأحمل +سأحييها +سأخبر +سأخبرك +سأخفي +سأدخل +سأدق +سأذهب +سأذوق +سأرتدي +سأرتكب +سأرسم +سأروي +سأزعل +سأسأل +سأسبح +سأستمتع +سأستمر +سأسمح +سأسير +سأشتري +سأشرب +سأصادف +سأصبح +سأصعد +سأصل +سأصنع +سأضطر +سأطلب +سأطيق +سأظل +سأعتذر +سأعترف +سأعرف +سأعود +سأفجع +سأفعل +سأفقد +سأقتل +سأقف +سأقلعها +سأقول +سأقوله +سأقولها +سأقوم +سأكسر +سأكمل +سأكون +سأل +سألت +سألتقطها +سألتني +سألته +سألتها +سألك +سألنا +سألناه +سألناها +سألني +سأله +سألها +سألوا +سألوه +سأنام +سأنتظر +سأنتقم +سأنسل +سأنشره +سأهديها +سأوقظك +سؤال +سؤالا +سؤالان +سؤالاً +سؤالك +سؤاله +سؤالها +سؤالي +سؤالين +سئل +سئلت +سئمتُ +ساءت +ساءك +سائح +سائحا +سائحاً +سائحـين +سائحون +سائد +سائدا +سائدان +سائداً +سائدة +سائدًا +سائر +سائرا +سائرًا +سائق +سائقي +سائل +سائلا +سائلاً +سائلة +سائلةً +سائله +سابحا +سابحة +سابق +سابقا +سابقاً +سابقة +سابقتها +سابقين +سابقيه +سابقًا +سابك +سابلين +ساتيس +ساجان +ساجداً +ساجدين +ساجدًا +ساح +ساحات +ساحاته +ساحاتها +ساحة +ساحر +ساحرا +ساحرة +ساحـل +ساحقة +ساحل +ساحلاً +ساحلية +ساخرا +ساخرة +ساخن +ساخنا +ساخناً +ساخنة +ساد +سادة +سادت +سادتي +سادسة +ساذجاً +ساذجة +سار +سارا +سارة +سارت +سارتر +سارتون +سارجنت +سارز +سارس +سارع +سارعت +سارعن +سارعوا +ساروجا +ساروجة +ساروفين +سارياً +سارية +ساس +ساستمر +ساسكاتشوان +ساسون +ساطع +ساعات +ساعة +ساعتان +ساعتنا +ساعته +ساعتها +ساعتين +ساعد +ساعدت +ساعدتنا +ساعدتني +ساعدتها +ساعدنا +ساعدني +ساعده +ساعدونا +ساعدوهم +ساعدي +ساعديني +ساعديه +ساعلقه +ساعي +ساعيا +ساعية +ساعين +سافر +سافرا +سافرات +سافرة +سافرت +سافروا +سافو +ساق +ساقا +ساقاي +ساقبل +ساقط +ساقطاً +ساقطة +ساقه +ساقها +ساقية +ساقيها +ساكس +ساكن +ساكنا +ساكناً +ساكنة +ساكنيه +ساكنيها +سال +سالت +سالس +سالف +سالكاً +سالكين +سالم +سالما +سالماً +سالمون +سالمين +سام +سامة +سامحنى +سامحني +سامر +سامسونج +سامقة +سامى +سامي +سامية +سامٍ +سامّة +سان +سانت +سانتو +سانتياجو +سانتينيكيتان +سانجر +سانحة +ساندتها +ساندرا +ساندى +سانريكو +سانكيتي +ساهرا +ساهرات +ساهم +ساهما +ساهمت +ساهموا +ساونا +سايكس +ساينس +سبأ +سبا +سبائك +سبابته +سبابتُه +سبابَتَهُ +سبات +سباته +سباتها +سباحة +سباحته +سباع +سباعية +سباق +سباقا +سباقات +سباقان +سباقه +سبب +سببا +سبباً +سببت +سببته +سببه +سببها +سببًا +سبتمبر +سبحا +سبحان +سبحانك +سبحانه +سبخة +سبر +سبراطة +سبراي +سبراً +سبع +سبعة +سبعمائة +سبعون +سبعين +سبعينات +سبعيناته +سبعينيات +سبق +سبقا +سبقانا +سبقاً +سبقت +سبقتنا +سبقته +سبقتهم +سبقنا +سبقني +سبقه +سبقها +سبقهم +سبقوا +سبقونا +سبقوني +سبقوه +سبقوها +سبكه +سبل +سبوحة +سبور +سبيس +سبيعي +سبيكة +سبيل +سبيلا +سبيلاً +سبيلك +سبيله +سبيلها +سبيلهم +سبيلٍ +سبيننوزا +سبّاقا +سبّب +ست +ستأخذها +ستأكل +ستؤخذ +ستؤدي +ستائر +ستار +ستارا +ستارة +ستاروود +ستازي +ستافروس +ستافسكي +ستالين +ستان +ستاندرد +ستانفورد +ستانلي +ستايرين +ستبحث +ستبدأ +ستبقى +ستبقي +ستبين +ستة +ستتاح +ستتجاوز +ستتدفق +ستتدهور +ستتزايد +ستتفاوت +ستتقن +ستتلاشي +ستتلقاني +ستتم +ستتمكن +ستتناولين +ستتيح +ستجد +ستجذب +ستجري +ستجعل +ستجلس +ستجيب +ستحافظ +ستحسن +ستحصل +ستحقق +ستحل +ستحلق +ستحلل +ستحمل +ستحملنا +ستحملون +ستخبره +ستختفي +ستخضع +ستدرس +ستدعو +ستذهب +ستر +سترابون +ستراسبورج +ستراني +ستراوسكي +سترة +سترت +سترتاح +سترتفع +سترته +سترجع +ستردد +سترسم +سترلينج +سترمي +سترها +سترونج +سترى +ستريت +ستريه +ستزال +ستزول +ستساعد +ستسافر +ستساهم +ستسببون +ستستثمر +ستستخدم +ستستطيعين +ستستقل +ستسفر +ستسقط +ستسمح +ستسهم +ستسوق +ستسير +ستشاهدين +ستشعر +ستشق +ستشكل +ستشهد +ستصبح +ستصبحين +ستصدرها +ستصرخ +ستصنع +ستضاف +ستضطرني +ستطبق +ستطردين +ستظل +ستظهر +ستعترف +ستعرض +ستعرف +ستعطينا +ستعمل +ستعني +ستعود +ستعيش +ستفتح +ستفرض +ستفعل +ستفهم +ستقاوم +ستقبض +ستقدمها +ستقرؤه +ستقرب +ستقسّم +ستقل +ستقول +ستقولينه +ستقوم +ستكبرين +ستكتئب +ستكتفي +ستكثر +ستكنسون +ستكون +ستكونين +ستلحق +ستلد +ستمائة +ستمثل +ستمر +ستمسح +ستمنح +ستنتهي +ستنجلي +ستنجم +ستندلر +ستنطلق +ستنظمها +ستنفجر +ستنفذ +ستنهار +ستهدأ +ستواجه +ستواجهه +ستواجهها +ستوب +ستور +ستوضع +ستوفر +ستوكل +ستوكهولم +ستون +ستي +ستيرن +ستيف +ستيفانو +ستيفانيل +ستيفن +ستيفنز +ستيفين +ستيكسرود +ستيكل +ستيلار +ستين +ستينيات +ستيوارت +سجادات +سجادة +سجالاً +سجل +سجلات +سجلاته +سجلاً +سجلت +سجلته +سجلتها +سجله +سجلها +سجلوا +سجن +سجنا +سجناء +سجنت +سجنه +سجون +سجى +سجيتها +سجين +سجينا +سجينة +سجّلت +سحائية +سحاب +سحاباً +سحابة +سحاحير +سحال +سحايا +سحب +سحبت +سحبتْ +سحبها +سحبوا +سحر +سحرا +سحراً +سحرته +سحرني +سحره +سحرها +سحرهما +سحري +سحريا +سحرياً +سحرية +سحق +سحقته +سحقها +سحم +سحنة +سحيق +سحيقة +سخاء +سخاروف +سخافاته +سخرت +سخرية +سخطه +سخطها +سخف +سخمت +سخونة +سخونته +سخونتها +سخياً +سخية +سخيفة +سخيّا +سخيَّةً +سخّر +سد +سدادة +سداسي +سدة +سددت +سدها +سدوله +سدى +سدّ +سدّا +سدّهما +سذاجة +سذاجتي +سر +سرا +سراء +سراب +سرابا +سراج +سراح +سراحه +سراحي +سرادق +سرادقات +سراديب +سراعًا +سرايا +سراية +سراييفو +سراً +سرب +سرت +سرج +سرجة +سرجون +سرح +سرحت +سرحد +سرد +سردابٌ +سردابٍ +سرديّة +سرطان +سرطانات +سرطاناً +سرعان +سرعة +سرعته +سرعتها +سرعـة +سرق +سرقات +سرقة +سرقت +سرقتها +سرقـوا +سرقها +سرقوا +سرمد +سرمدية +سرها +سروالاً +سروة +سرور +سروراً +سروره +سرى +سري +سريا +سريان +سريانها +سرية +سرير +سريره +سريرها +سريري +سريرية +سريريه +سريع +سريعا +سريعاً +سريعة +سريعه +سريعًا +سرًا +سرّ +سرّاً +سرّني +سرّها +سرّية +سرًّا +سرٌّ +سرُّ +سطح +سطحه +سطحها +سطحي +سطحيا +سطحية +سطر +سطرا +سطس +سطع +سطعت +سطــح +سطل +سطو +سطوة +سطوتها +سطوح +سطور +سطوره +سطوع +سطوعاً +سع +سعاد +سعادة +سعادته +سعادتها +سعادتهما +سعادتي +سعار +سعال +سعة +سعت +سعتهما +سعد +سعداء +سعدة +سعدت +سعدي +سعدياً +سعر +سعرات +سعره +سعرها +سعرية +سعرًا +سعف +سعفات +سعفص +سعود +سعودة +سعودى +سعودي +سعودياً +سعودية +سعوديون +سعوديين +سعوديًا +سعى +سعي +سعيا +سعياً +سعيت +سعيد +سعيدا +سعيداً +سعيدة +سعيدًا +سعيرها +سعينا +سعيه +سعيها +سعيًا +سـلك +سفاجا +سفاحون +سفارتسشيلد +سفارتها +سفاري +سفالبارد +سفح +سفحك +سفحه +سفر +سفرا +سفراء +سفرات +سفراته +سفراتي +سفرة +سفرك +سفرنامة +سفرنامته +سفره +سفرهم +سفري +سفرياتهم +سفلة +سفلي +سفلية +سفن +سفنها +سفنهم +سفوبودا +سفوح +سفوحه +سفور +سفورزا +سفيان +سفير +سفيرا +سفيراً +سفيرًا +سفينة +سفيه +سقارة +سقاريا +سقاية +سقت +سقراط +سقراطيس +سقط +سقطات +سقطاتها +سقطة +سقطت +سقطوا +سقف +سقفه +سقفها +سقفية +سقفًا +سقمت +سقناه +سقوط +سقوطاً +سقوطه +سكاف +سكاكيني +سكالا +سكان +سكانه +سكانها +سكانية +سكاى +سكب +سكبت +سكة +سكت +سكتت +سكتوا +سكر +سكران +سكرة +سكرتير +سكرتيراً +سكرتيرة +سكريات +سكريبس +سكسي +سكن +سكنا +سكنت +سكنتُ +سكندري +سكنه +سكنها +سكنهم +سكنوه +سكني +سكنيا +سكنية +سكوا +سكوب +سكوت +سكوتر +سكون +سكين +سكينة +سكّان +سكّير +سل +سلاح +سلاحا +سلاحاً +سلاحها +سلاحي +سلاسة +سلاسل +سلاطين +سلاطينهم +سلالا +سلالات +سلالاته +سلالاتهم +سلالة +سلالتها +سلالم +سلاله +سلام +سلاما +سلاماً +سلامة +سلامته +سلامتها +سلامه +سلامي +سلاميّات +سلاّه +سلب +سلبا +سلباً +سلبه +سلبها +سلبي +سلبيا +سلبيات +سلبياتها +سلبياً +سلبية +سلبيين +سلبيًّا +سلة +سلخ +سلخات +سلسالها +سلسة +سلسلة +سلسلتين +سلطات +سلطان +سلطانه +سلطانها +سلطانهم +سلطانيّة +سلطة +سلطت +سلطتنا +سلطته +سلطتها +سلطتهم +سلطنة +سلطنياد +سلع +سلعا +سلعة +سلعتان +سلعتين +سلعيا +سلف +سلفادور +سلفاً +سلفه +سلفياً +سلفية +سلفًا +سلك +سلكه +سلكها +سلم +سلمان +سلماً +سلمتُ +سلمك +سلمنا +سلمى +سلمي +سلمية +سلوان +سلوفانيا +سلوفينيا +سلوقي +سلوك +سلوكاً +سلوكه +سلوكها +سلوكهم +سلوكي +سلوكيا +سلوكيات +سلوكياتنا +سلوكياتهم +سلوكية +سلوى +سليط +سليفرمان +سليل +سليلة +سليلوا +سليم +سليما +سليمان +سليماً +سليمة +سليمتان +سليمين +سلّ +سلّم +سم +سماء +سمات +سماته +سماتها +سماحة +سماحته +سماد +سمارة +سمارت +سماسرة +سماع +سماعا +سماعات +سماعة +سماعنا +سماعيا +سماعياً +سماكة +سماكته +سمان +سماه +سماها +سماوات +سماوي +سماويا +سماوية +سمبل +سمة +سمت +سمته +سمتُهُ +سمح +سمحا +سمحت +سمحوا +سمر +سمراء +سمرة +سمرقند +سمريا +سمسم +سمع +سمعا +سمعان +سمعة +سمعت +سمعته +سمعتها +سمعتُ +سمعتِ +سمعنا +سمعه +سمعها +سمعوا +سمعون +سمعوه +سمعي +سمعية +سمق +سمك +سمكة +سمكه +سمكها +سمن +سمنة +سمنت +سمو +سموالأمير +سموج +سموكم +سموم +سموه +سموها +سمى +سمي +سميت +سميته +سميتهم +سميث +سميدلي +سمير +سميرة +سميرنوف +سميساط +سميع +سميك +سميكة +سمين +سميناً +سمينًا +سميه +سميّة +سمّاه +سمّته +سمّيت +سمّيته +سمًّيا +سمَّاها +سمِّيت +سن +سنا +سنابك +سنارة +سنان +سناً +سنبدأ +سنبقى +سنة +سنتات +سنتان +سنتجاوزها +سنتحدث +سنتر +سنتراجع +سنتعامل +سنتعاون +سنتعرض +سنتناول +سنتناوله +سنتها +سنتهم +سنتي +سنتيمتر +سنتيمترا +سنتيمترات +سنتيمتراً +سنتيمترًا +سنتين +سنثبت +سنج +سنجاي +سنجد +سنجنيها +سنحاول +سنحت +سنحتفل +سنحدد +سنخرج +سند +سندا +سندتني +سندرجها +سندرلاند +سندك +سنديس +سنذهب +سنرسل +سنرى +سنستمتع +سنستوطن +سنسهر +سنصل +سنضع +سنظهر +سنعرض +سنعلمه +سنعود +سنقدم +سنقضي +سنقوم +سنقيم +سنكتفي +سنكون +سنلاحظ +سنمار +سنن +سننتقل +سننقله +سنه +سنوات +سنواتك +سنواته +سنواتي +سنوضحه +سنوك +سنولي +سنونا +سنونو +سنوي +سنويا +سنوياً +سنوية +سنويًا +سنويًّا +سني +سنية +سنيك +سنين +سنًا +سنّ +سنّة +سنَّة +سه +سهر +سهرات +سهرة +سهرنا +سهل +سهلا +سهلاً +سهلة +سهلت +سهم +سهوا +سهول +سهولة +سهير +سهيل +سهّلت +سهَّل +سوء +سوءا +سوءاً +سوءًا +سوا +سواء +سواءً +سوائل +سوابق +سوات +سواتر +سواح +سواحل +سواحلنا +سواد +سوادا +سوادها +سوارا +سواراً +سوانا +سواه +سواها +سواهم +سواهما +سواي +سوبر +سوبرماركت +سوثبي +سوداء +سوداني +سودنة +سور +سورات +سوراً +سورة +سوره +سورها +سوري +سوريا +سوريالياً +سوريالية +سورية +سوريو +سوريون +سوزان +سوزوكي +سوسة +سوسن +سوسو +سوسيكس +سوسيولوجيا +سوسيولوجية +سوطت +سوف +سوفت +سوفييتية +سوق +سوقا +سوقان +سوقاً +سوقرن +سوقها +سوقية +سوكر +سولاريوم +سولاي +سولت +سوما +سومر +سومري +سوميخ +سوناتات +سونجهاي +سوندرز +سوندريجر +سونى +سوني +سوى +سوي +سويا +سوياً +سوية +سويتوا +سويدا +سويدي +سويدية +سويديًا +سويس +سويسرا +سويسري +سويسرياً +سويسرية +سويعات +سويف +سوينا +سوينكا +سويّ +سويّا +سوّى +سى +سي +سيء +سيأتون +سيأتى +سيأتي +سيأخذ +سيأخذنا +سيأكلك +سيؤازره +سيؤثر +سيؤخرني +سيؤدون +سيؤدى +سيؤدي +سيئ +سيئا +سيئاته +سيئة +سيئي +سياتل +سياجا +سياجات +سياجاً +سياح +سياحاً +سياحة +سياحتنا +سياحـة +سياحـى +سياحـية +سياحى +سياحي +سياحيا +سياحياً +سياحية +سياحيين +سيادة +سيار +سيارات +سياراتهم +سياراتهن +سيارة +سيارتك +سيارتنا +سيارته +سيارتها +سيارتي +سيارتين +سياسات +سياساته +سياساتها +سياسة +سياسته +سياسوية +سياسي +سياسيا +سياسياً +سياسية +سياسيين +سياسييه +سياسيًا +سياسيًّا +سياط +سياق +سياقه +سياقها +سياقيا +سياقين +سيالة +سيام +سيان +سياولين +سيبتعد +سيبتلعني +سيبحث +سيبحثه +سيبدأ +سيبقون +سيبقى +سيبكيه +سيتار +سيتارو +سيتبعها +سيتبين +سيتجدد +سيتجول +سيتحقق +سيتخطى +سيتركونه +سيتزامن +سيتسببان +سيتعامل +سيتعجَّب +سيتعين +سيتفاجئ +سيتفق +سيتكفل +سيتلقى +سيتم +سيتمثل +سيتمكن +سيتمكنون +سيتهمه +سيتوقف +سيتي +سيثير +سيجار +سيجارا +سيجارته +سيجارها +سيجد +سيجري +سيجزل +سيجعلنا +سيحاربون +سيحافظ +سيحتاج +سيحتد +سيحجب +سيحدث +سيحدد +سيحصل +سيحقق +سيحكم +سيحل +سيحمل +سيحمله +سيحول +سيحيق +سيحين +سيختلف +سيخرج +سيخصص +سيد +سيدات +سيداتي +سيدافع +سيداً +سيدة +سيدتنا +سيدخل +سيدفع +سيدنا +سيدني +سيدها +سيدي +سيذاكر +سيذكر +سيذهب +سير +سيرا +سيراس +سيراسيتاس +سيراك +سيراكوز +سيراكوزه +سيراليون +سيرة +سيرتك +سيرته +سيرتها +سيرتي +سيرج +سيرفر +سيرفن +سيرفين +سيركز +سيرنا +سيره +سيرها +سيرهم +سيري +سيريز +سيريلانكا +سيرين +سيزان +سيزداد +سيزنز +سيزور +سيزول +سيزيد +سيزيوم +سيساعدك +سيسافر +سيساهم +سيستخدم +سيستطيع +سيستفيد +سيستقبلها +سيستقر +سيستمتعون +سيستمز +سيسجلها +سيسعى +سيسقط +سيسلي +سيسمى +سيسهم +سيسي +سيشاركون +سيشتري +سيشده +سيشرع +سيشهد +سيصاب +سيصبح +سيصف +سيصفعني +سيصل +سيصلك +سيصنعها +سيضاف +سيضبطها +سيضربوننا +سيضطرني +سيضطلع +سيضع +سيضعها +سيضمها +سيطالب +سيطر +سيطربكم +سيطرة +سيطرت +سيطرتها +سيطرتهم +سيطرح +سيطرق +سيطلب +سيطول +سيظل +سيظهر +سيعاد +سيعاقب +سيعتاد +سيعتبرون +سيعزز +سيعطيه +سيعقد +سيعمل +سيعمم +سيعني +سيعود +سيعودان +سيعيد +سيعيش +سيعيشون +سيعيق +سيف +سيفاجأ +سيفرح +سيفرض +سيفشل +سيفقد +سيفه +سيفهمه +سيفين +سيقاطع +سيقام +سيقان +سيقانه +سيقانهم +سيقتحم +سيقتطع +سيقرره +سيقرعون +سيقع +سيقهر +سيقودنا +سيقول +سيقوم +سيكتبه +سيكتم +سيكستوس +سيكلف +سيكلفنا +سيكو +سيكون +سيكونان +سيكونون +سيكوني +سيل +سيلا +سيلازمنا +سيلان +سيلانيز +سيلاً +سيلبير +سيلتقي +سيلزبوري +سيلزم +سيلفر +سيلفريدج +سيلقاه +سيلوستازول +سيليت +سيليو +سيما +سيمثلان +سيمر +سيمفوني +سيمفونيا +سيمفونيان +سيمفونية +سيمفونيته +سيمكن +سيمكنان +سيمكننا +سيملانسكي +سيملك +سيمنحنا +سيموت +سيمون +سين +سينا +سيناء +سيناريو +سيناريوهات +سيناسبيسموس +سيناقشونها +سينالهم +سينامات +سينتج +سينتقل +سينتهج +سينتهي +سينج +سينجارن +سينزعج +سينعكس +سينقصان +سينقطع +سينما +سينمائي +سينمائيا +سينمائية +سينمات +سينماتك +سينماتين +سينهض +سينو +سينوباه +سينورهابديتيتس +سينيك +سيهبط +سيواجه +سيواجهان +سيواجهون +سيوافق +سيور +سيوس +سيوضع +سيوف +سيوفر +سيولة +سييء +سيّدي +سيّما +سيِّئانُ +سيِّئة +سَبِيلِي +سَفَري +سَيَرْحَمُهُمُ +سَيِّئَاتِهِمْ +سُئل +سُجن +سُجِّلت +سُخرت +سُخط +سُدسُ +سُرق +سُقنا +سُقناه +سُلب +سُلّم +سُموا +سُميت +سُميّة +سُميّت +سُمِّي +سُنة +سُنن +سِيَراً +سِيْوَة +سَّرين +ش +شآخرتها +شأن +شأنا +شأناً +شأنه +شأنها +شأنهم +شأني +شأنَ +شؤم +شؤون +شئ +شئت +شئتم +شئنا +شئون +شئونه +شئونها +شا +شاء +شاءوا +شائع +شائعا +شائعات +شائعاً +شائعة +شائقة +شاب +شابا +شاباً +شابة +شابرا +شابلن +شابه +شابها +شابهه +شابهها +شابين +شابّة +شابًّا +شابٌّ +شاتوبريان +شاتيلا +شاحب +شاحبات +شاحباً +شاحبة +شاحنات +شاحنة +شاحنًا +شاخص +شاخصة +شادي +شادية +شاربان +شارحا +شارحًا +شارد +شاردا +شاردة +شارع +شارعا +شارعان +شارعه +شارك +شاركت +شاركته +شاركتهم +شاركنا +شاركني +شاركها +شاركو +شاركوا +شارل +شارلمان +شارلي +شارون +شاستري +شاسعة +شاشات +شاشة +شاطئ +شاطئاً +شاطئه +شاطئها +شاع +شاعت +شاعر +شاعرا +شاعرات +شاعران +شاعراً +شاعرة +شاعرنا +شاعرهم +شاعري +شاعرية +شاعرين +شاف +شافية +شافيًا +شاق +شاقا +شاقة +شاقني +شاكر +شاكرين +شاكل +شاكي +شاكياً +شال +شالسبب +شاله +شاليهات +شامبليون +شامخاً +شامخة +شامخًا +شامل +شاملا +شاملاً +شاملة +شامي +شامية +شانيدار +شاه +شاهد +شاهدا +شاهداً +شاهدة +شاهدت +شاهدتموه +شاهدتها +شاهدنا +شاهدناه +شاهدوا +شاهدًا +شاهدٍ +شاهق +شاهقة +شاهين +شاور +شاوول +شاى +شاي +شايرز +شايف +شايلد +شاينا +شب +شباب +شبابا +شباباً +شبابك +شبابنا +شبابه +شبابها +شبابي +شبابيا +شبابية +شبابيك +شباز +شباط +شباك +شباكا +شباكه +شبان +شببت +شبت +شبح +شبحاً +شبر +شبراً +شبرة +شبعا +شبعان +شبعاً +شبكات +شبكة +شبكيات +شبكياتها +شبكياتهم +شبكية +شبكيته +شبلاج +شبه +شبهة +شبهت +شبهه +شبوح +شبيب +شبيبة +شبيجل +شبيجيل +شبيه +شبيهاً +شبيهة +شبيهًا +شبّاكه +شتاء +شتائمه +شتات +شتارك +شتالو +شتبون +شتبي +شتقول +شتلات +شتلة +شتم +شتمك +شتوية +شتى +شتيرن +شتّى +شجار +شجاع +شجاعا +شجاعة +شجاعتي +شجاعي +شجر +شجرات +شجرة +شجرته +شجع +شجعان +شجعت +شجعتني +شجعته +شجعنا +شجعني +شجعوا +شجون +شجياً +شجية +شجيرات +شجيرة +شجّع +شجَّعه +شح +شحا +شحات +شحاتة +شحاذ +شحت +شحتة +شحدتك +شحذ +شحم +شحمي +شحمية +شحن +شحنات +شحناتها +شحنة +شحنها +شحوم +شحيحة +شحّ +شخب +شخبرة +شخص +شخصا +شخصاً +شخصه +شخصها +شخصي +شخصيا +شخصيات +شخصياته +شخصياتهم +شخصياتي +شخصياً +شخصية +شخصيتك +شخصيتنا +شخصيته +شخصيتها +شخصيتهم +شخصيتي +شخصيتين +شخصين +شخصيًا +شخصيًّا +شخصًا +شخطت +شخوص +شخيرهم +شخّصت +شد +شدا +شدات +شداد +شدة +شدتني +شدته +شدتها +شدد +شدقية +شدني +شده +شديد +شديدا +شديداً +شديدة +شديدي +شديدًا +شدّني +شدّولي +شذاها +شذرات +شر +شرا +شراء +شراءه +شراءها +شراؤها +شرائح +شرائط +شرائه +شرائها +شرائية +شراباً +شرار +شرارات +شرارة +شراسة +شراستهم +شراشف +شراع +شراعية +شراك +شراكة +شراها +شراهتها +شرايك +شرايين +شرايينها +شراً +شرب +شربت +شرجي +شرح +شرحاً +شرحت +شرحته +شرحنا +شرحه +شرحها +شرخا +شرخاً +شرخت +شرد +شردهم +شرذمة +شرس +شرسة +شرسق +شرط +شرطا +شرطاً +شرطة +شرطى +شرطي +شرطيا +شرطيان +شرطيين +شرع +شرعت +شرعتم +شرعها +شرعي +شرعيا +شرعية +شرعيته +شرعيتها +شرعيًا +شرعيًّا +شرعًا +شرف +شرفا +شرفاء +شرفات +شرفة +شرفت +شرفها +شرفية +شرق +شرقا +شرقاً +شرقه +شرقها +شرقي +شرقيا +شرقية +شرقيون +شرقًا +شرك +شركا +شركاء +شركائها +شركائهم +شركات +شركاته +شركاتها +شركاتهم +شركة +شركةً +شركتنا +شركته +شرلوك +شرم +شرنقتها +شرها +شروخا +شرور +شروره +شروط +شروطاً +شروطه +شروطها +شروطًا +شروق +شروقها +شروى +شريان +شريبة +شريحة +شرير +شريرة +شريط +شريطا +شريطان +شريطاً +شريطة +شريطه +شريطًا +شريطٌ +شريعة +شريف +شريفاً +شريفة +شريك +شريكا +شريكاً +شريكة +شريكنا +شريكين +شرِّ +شزر +شزرا +شسويتوا +شصار +شط +شطآن +شطح +شطر +شطري +شطط +شطين +شظايا +شظف +شظية +شعائرها +شعاب +شعابا +شعابنا +شعابه +شعار +شعارا +شعارات +شعاراتها +شعاراً +شعاره +شعارها +شعارهم +شعارًا +شعاع +شعاعها +شعاعية +شعب +شعبا +شعبان +شعباً +شعبة +شعبتين +شعبك +شعبنا +شعبه +شعبها +شعبهم +شعبي +شعبيا +شعبياً +شعبية +شعبيتها +شعبينا +شعبيًّا +شعبًا +شعث +شعر +شعرا +شعراء +شعرائنا +شعرائها +شعرات +شعراوي +شعراً +شعرة +شعرت +شعرك +شعرنا +شعره +شعرها +شعرهم +شعروا +شعري +شعريا +شعرياً +شعرية +شعريًا +شعريّ +شعشع +شعشعت +شعلة +شعواء +شعوب +شعوبا +شعوبنا +شعوبه +شعوبها +شعوبهم +شعوبية +شعور +شعورا +شعوراً +شعورك +شعورنا +شعوره +شعورهم +شعورهن +شعوري +شعورية +شعورًا +شعيرات +شعيراتها +شعيرتين +شـهر +شـوقى +شف +شفاء +شفاءً +شفائه +شفائها +شفائي +شفاعة +شفافا +شفافة +شفافية +شفاه +شفاهة +شفاهي +شفايزر +شفة +شفت +شفتاكْ +شفتاه +شفتاها +شفته +شفتيه +شفتيها +شفتيهِ +شفرة +شفش +شفط +شفطها +شفعت +شفقة +شفقتي +شفيت +شفيق +شفَقا +شق +شقا +شقاء +شقائق +شقال +شقة +شقت +شقتك +شقته +شقتي +شقراء +شقرة +شقق +شققت +شققني +شقها +شقهم +شقوق +شقيق +شقيقات +شقيقاتها +شقيقة +شقيقته +شقيقتي +شقيقتيها +شقيقه +شقيقي +شقيقَه +شقيقَهُ +شقيقِه +شقين +شقّت +شقّها +شك +شكا +شكاكة +شكاوى +شكاوي +شكت +شكتها +شكر +شكرا +شكراً +شكرت +شكره +شكري +شكسبير +شكسبيرية +شكل +شكلا +شكلاً +شكلت +شكلتا +شكلتها +شكله +شكلها +شكلي +شكلية +شكلين +شكلِها +شكواه +شكواي +شكوت +شكور +شكوك +شكوكو +شكوى +شكيب +شكيت +شكّل +شكّلت +شكَّ +شل +شلاج +شلة +شلل +شللي +شلوف +شلون +شمائله +شمائلها +شمال +شمالا +شمالاً +شماله +شمالها +شمالي +شمالية +شمر +شمرا +شمروا +شمس +شمسا +شمسه +شمسها +شمسي +شمسية +شمسيته +شمسيتين +شمع +شمعة +شمعون +شمل +شملت +شملني +شملها +شموخا +شموخك +شمولاً +شموليا +شمولية +شمية +شميدت +شميما +شمّاء +شناق +شنايدر +شنتها +شندي +شنقول +شنو +شنوا +شنيعة +شنّ +شهاب +شهادات +شهاداتهم +شهادة +شهادتها +شهادتهم +شهادتين +شهادتَيْ +شهامتي +شهد +شهداء +شهداءها +شهدت +شهدته +شهدتها +شهدنا +شهدناه +شهده +شهدها +شهر +شهرا +شهران +شهراً +شهرة +شهرته +شهرتها +شهرزاد +شهري +شهريا +شهريار +شهرياً +شهرية +شهرين +شهريًا +شهرًا +شهــرة +شهقات +شهقة +شهماً +شهمًا +شهمٍ +شهوانية +شهوة +شهوته +شهوتهم +شهود +شهور +شهورا +شهوراً +شهية +شهيته +شهيتي +شهيد +شهيدًا +شهير +شهيرا +شهيراً +شهيرة +شو +شواء +شوائب +شوائبها +شواذ +شواذا +شوارع +شوارعنا +شوارعها +شوارعِ +شواطئ +شواطئنا +شواطئه +شواطئها +شواطئهم +شوال +شوالٍ +شواهد +شوبان +شوتاواي +شوتايم +شورك +شوسكا +شوشة +شوشـــة +شوط +شوطاً +شوطًا +شوف +شوفو +شوق +شوقا +شوقي +شوكة +شوكتهم +شوكولاتة +شوكيات +شوكية +شولتز +شونتو +شوهت +شوهد +شوي +شويك +شويه +شي +شيء +شيءٍ +شيءَ +شيئ +شيئا +شيئان +شيئاً +شيئين +شيئًا +شياطين +شيب +شيبارد +شيبة +شيبس +شيبوب +شيت +شيجانوفا +شيخ +شيخا +شيخك +شيخنا +شيخه +شيخوخة +شيخوخته +شيخون +شيخي +شيخين +شيد +شيدت +شيده +شيدها +شيراتون +شيراز +شيرشوف +شيرين +شيش +شيطان +شيطانيا +شيطانية +شيعت +شيفرة +شيفرته +شيق +شيقاً +شيقة +شيك +شيكا +شيكات +شيكل +شيكلا +شيكلاً +شيكولاتة +شيلي +شيماس +شيمل +شيمه +شين +شينج +شيني +شينيانج +شيوخ +شيوخاً +شيوخه +شيوع +شيوعا +شيوعاً +شيوعي +شيوعًا +شيّدته +شيّدتها +شيّعهم +شَعرها +شَعْر +شُرح +شُرع +شُعُوبًا +شُنق +شُهر +شُيِّدت +ص +صائب +صائبا +صائبة +صائد +صائم +صابورات +صاح +صاحب +صاحبة +صاحبت +صاحبته +صاحبتها +صاحبك +صاحبنا +صاحبه +صاحبها +صاحبوا +صاحبوني +صاحبي +صاحبيها +صاحت +صاحـب +صاحوا +صاخب +صاخبة +صادح +صادر +صادرا +صادرات +صادراتها +صادرة +صادرت +صادف +صادفتنا +صادفتني +صادفنا +صادفه +صادق +صادقا +صادقاً +صادقة +صادقوا +صادم +صادمة +صار +صارت +صارتا +صارجدامي +صارحيني +صارخ +صارخا +صارخة +صارخًا +صارم +صارمة +صاروا +صاروخ +صاروخي +صاعد +صاعدا +صاعداً +صاعدة +صاعقة +صاف +صافحته +صافحنا +صافياً +صافية +صافِقاً +صال +صالات +صالة +صالح +صالحا +صالحاً +صالحة +صالحنا +صالحًا +صالون +صالونات +صالوناً +صامت +صامتا +صامتاً +صامتة +صامتين +صامدا +صامدة +صامويل +صاند +صانع +صانعة +صانعه +صانعو +صانعي +صانعيها +صب +صباح +صباحا +صباحاته +صباحاً +صباحـاً +صباحه +صباحها +صباحهم +صباحية +صباحًا +صبان +صباه +صباها +صباي +صبايا +صببت +صبح +صبحي +صبر +صبره +صبرى +صبري +صبرَهُ +صبها +صبوحاً +صبوراً +صبي +صبيا +صبيان +صبياً +صبية +صبيحة +صبيًّا +صبّ +صبّتها +صبّوا +صة +صج +صح +صحائف +صحائفهم +صحار +صحارى +صحاري +صحافتهم +صحافيا +صحافيون +صحافيين +صحبة +صحبت +صحبته +صحبتهم +صحبتي +صحبني +صحة +صحت +صحته +صحتها +صحتهم +صحتي +صحح +صحراء +صحراوات +صحراوي +صحراوية +صحف +صحفنا +صحفى +صحفي +صحفيا +صحفيان +صحفياً +صحفية +صحفيون +صحفًا +صحن +صحوات +صحوة +صحوتها +صحونا +صحي +صحيا +صحياً +صحية +صحيح +صحيحا +صحيحاً +صحيحة +صحيحه +صحيفة +صحيفته +صحّ +صحّة +صخب +صخبها +صخر +صخرة +صخرته +صخرية +صخور +صد +صدأ +صدئ +صدار +صدارة +صداع +صداقاتها +صداقة +صداقته +صدام +صدامه +صدامياً +صداها +صدد +صددت +صدر +صدرت +صدرك +صدرنا +صدره +صدرها +صدري +صدرية +صدع +صدف +صدفة +صدق +صدقاً +صدقة +صدقت +صدقته +صدقني +صدقه +صدقها +صدقي +صدقيتها +صدم +صدمة +صدمته +صدور +صدوره +صدورها +صدورهم +صدى +صدىء +صديدية +صديق +صديقا +صديقات +صديقاتها +صديقاً +صديقة +صديقته +صديقتي +صديقك +صديقنا +صديقه +صديقهم +صديقهما +صديقي +صديقين +صدّر +صدّقوني +صر +صراحة +صراحتي +صراخ +صراخه +صراع +صراعا +صراعات +صراعاتهم +صراعاً +صراعهم +صراعهما +صراعي +صراف +صرامته +صرة +صرةُ +صرت +صرتُ +صرح +صرحاً +صرحت +صرحوا +صرخ +صرخة +صرخت +صرختي +صرختُ +صرعات +صرعة +صرعتها +صرف +صرفة +صرفته +صرنا +صروح +صروحاً +صروف +صريح +صريحاً +صريحة +صرير +صريع +صريعاً +صريعة +صرّة +صرّح +صرَّح +صطار +صعب +صعبا +صعباً +صعبة +صعد +صعدا +صعدت +صعدنا +صعصعة +صعلوك +صعوبات +صعوبة +صعوبتها +صعوبتين +صعود +صعودا +صعوداً +صعودنا +صعوده +صعيد +صعيده +صعيدها +صعيدي +صف +صفاء +صفائح +صفات +صفاته +صفاتها +صفاتٍ +صفار +صفارات +صفاقة +صفان +صفة +صفته +صفتها +صفحات +صفحاته +صفحاتها +صفحة +صفحتها +صفحتين +صفحتِهِ +صفر +صفرا +صفراء +صفرة +صفعة +صفق +صفقات +صفقة +صفه +صفو +صفوان +صفوة +صفوت +صفوف +صفوفه +صفوفها +صفوفهم +صفي +صفية +صفيح +صفيحات +صفير +صفيرها +صفًا +صفّ +صفّا +صفّر +صفّق +صفَّقت +صقر +صقع +صقل +صقلية +صقيلاً +صك +صكّ +صلابة +صلابته +صلاة +صلات +صلاته +صلاتهم +صلاح +صلاحها +صلاحيات +صلاحياتها +صلاحية +صلاحيته +صلاحيتها +صلب +صلبة +صلبه +صلة +صلته +صلتها +صلتهم +صلتي +صلح +صلحاً +صلحها +صلواته +صلواتهم +صلى +صليب +صليبا +صليبنا +صليبه +صليبي +صليبية +صلّ +صلّت +صم +صماء +صمام +صماماً +صمت +صمتت +صمتتا +صمتنا +صمته +صمتهما +صمتي +صمتٌ +صمتٍ +صمد +صمدت +صمدوا +صمم +صممت +صممنا +صممناه +صممه +صممها +صموئيل +صموت +صموتا +صمود +صميم +صميمة +صميمي +صمّ +صمّاء +صن +صنابير +صناديق +صناع +صناعات +صناعاتها +صناعاً +صناعة +صناعته +صناعتها +صناعىين +صناعي +صناعيا +صناعياً +صناعية +صنبور +صندالاً +صندوق +صندوقا +صندوقاً +صندوقها +صنع +صنعاء +صنعاني +صنعانية +صنعة +صنعت +صنعته +صنعنا +صنعه +صنعها +صنعوا +صنعية +صنف +صنفت +صنفها +صنم +صنوان +صنوبر +صنوبرة +صنوف +صنيع +صنيعهم +صنّاع +صنّاعه +صنّف +صنّفها +صهر +صهره +صهريج +صهريجا +صهريجه +صهوات +صهيون +صهيوني +صهيونيا +صهيونية +صواب +صوابه +صواريخ +صوامع +صوب +صوبها +صوبي +صوت +صوتا +صوتت +صوته +صوتها +صوتهم +صوتهما +صوتهن +صوتي +صوتية +صوتًا +صوتٌ +صور +صورا +صوراً +صورة +صورت +صورتك +صورتنا +صورته +صورتها +صورتهم +صورتي +صورتين +صورتيه +صورك +صوره +صورها +صوري +صوريا +صورية +صورًا +صوفاً +صوفي +صوفيا +صوفية +صومعة +صومعته +صون +صونها +صوّب +صوّر +صوّرت +صوّره +صوّروا +صياح +صياحه +صياد +صيادا +صيام +صيامه +صيانة +صيت +صيته +صيتها +صيحات +صيحاته +صيحاتٍ +صيحة +صيحته +صيد +صيدا +صيدح +صيدلانيا +صيدلى +صيدليات +صيدلية +صيده +صيدها +صيدون +صيف +صيفاً +صيفها +صيفىين +صيفي +صيفية +صيني +صينية +صيوان +صَبَرُوا +صَدَقُوا +صَعَّد +صَنيعة +صَنيعةَ +صُعق +صُنعت +صُنفت +صِلاته +ض +ضآلته +ضآلتها +ضئيل +ضئيلا +ضئيلاً +ضئيلة +ضائعة +ضائقة +ضائقته +ضابط +ضابطا +ضابطات +ضابطها +ضابطًا +ضاجعت +ضاحك +ضاحكا +ضاحكة +ضاحكين +ضاحية +ضاحيتا +ضار +ضاربا +ضاربة +ضاربي +ضاربين +ضارة +ضارعين +ضاريا +ضارية +ضاع +ضاعت +ضاعف +ضاق +ضاقت +ضاقوا +ضالة +ضالتها +ضامرة +ضامن +ضباب +ضبابية +ضباط +ضباع +ضبط +ضبطت +ضبطه +ضبطها +ضبعا +ضج +ضجة +ضجت +ضجره +ضجيج +ضجيجا +ضجيجه +ضجّت +ضجَّت +ضحايا +ضحاياه +ضحاياها +ضحك +ضحكاتهم +ضحكة +ضحكت +ضحكتهم +ضحكه +ضحكوا +ضحكي +ضحلة +ضحى +ضحية +ضحيته +ضحيتها +ضخ +ضخامة +ضخم +ضخما +ضخماً +ضخمة +ضخمًا +ضخّ +ضد +ضدالقوات +ضدان +ضدك +ضدنا +ضده +ضدها +ضدهم +ضدي +ضدّ +ضراء +ضرائب +ضراعة +ضرب +ضربا +ضربات +ضرباً +ضربة +ضربت +ضربته +ضربه +ضربها +ضربوها +ضرر +ضررها +ضرس +ضرع +ضره +ضرورات +ضرورة +ضرورتها +ضروري +ضروريا +ضروريات +ضرورياً +ضرورية +ضروريًا +ضروريًّا +ضريبة +ضريح +ضع +ضعف +ضعفا +ضعفاء +ضعفاً +ضعفت +ضعفك +ضعفنا +ضعفه +ضعفي +ضعوا +ضعيف +ضعيفا +ضعيفة +ضعيفًا +ضفاف +ضفافه +ضفة +ضفته +ضفتي +ضفتين +ضفتيه +ضفدعة +ضفيرة +ضفيرتي +ضل +ضلال +ضلعي +ضلفة +ضلفتيه +ضللنا +ضلوا +ضلوع +ضلوعه +ضم +ضمآن +ضماد +ضمامة +ضمان +ضمانات +ضماناً +ضمت +ضمته +ضمتها +ضممت +ضممته +ضممنا +ضمن +ضمناً +ضمنته +ضمنه +ضمنها +ضمنوا +ضمنيا +ضمنيّا +ضمنًا +ضمها +ضمور +ضموراً +ضمير +ضميري +ضمّنه +ضننت +ضنين +ضوء +ضوءالقمر +ضوؤها +ضوئها +ضوئي +ضوئيا +ضوئية +ضوابط +ضوابطه +ضواحي +ضواحيها +ضياء +ضياع +ضياعها +ضيافة +ضير +ضيعت +ضيعتها +ضيعناه +ضيعها +ضيف +ضيفا +ضيفة +ضيق +ضيقا +ضيقة +ضيقت +ضيقه +ضيقٌ +ضيوف +ضيوفك +ضيوفه +ضيّق +ضَمَّها +ضُبط +ضُربت +ضُعَيّف +ضِعفاً +ضّيق +ط +طأطأ +طائر +طائرا +طائرات +طائراتها +طائراً +طائرة +طائرته +طائشة +طائعين +طائفة +طائفتان +طائفته +طائفتها +طائفتي +طائفي +طائلة +طاب +طابع +طابعا +طابعات +طابعة +طابعه +طابعها +طابعًا +طابق +طابقاً +طابقين +طابقًا +طابور +طاحونة +طاحونتين +طار +طارئ +طارئا +طارئاً +طارئة +طارئين +طارت +طاردا +طاردنا +طاردني +طارق +طازجة +طاسة +طاستك +طاش +طاشت +طاعة +طاعناً +طاعنة +طاعون +طاف +طافت +طافش +طافوا +طافيا +طافية +طاقات +طاقاته +طاقاتها +طاقة +طاقته +طاقتها +طاقتهم +طاقم +طاقي +طاقية +طاقيًا +طال +طالب +طالبا +طالبات +طالباتها +طالبان +طالباً +طالبة +طالبت +طالبتين +طالبنا +طالبوا +طالبين +طالبيه +طالبًا +طالت +طالع +طالعتنا +طالعته +طالعي +طالما +طالها +طامي +طانيوس +طاهر +طاهراً +طاولات +طاولة +طاولته +طاولتها +طاولتهم +طب +طبائعهم +طباع +طباعة +طبانه +طبخ +طبخهم +طبرق +طبريا +طبرية +طبع +طبعا +طبعات +طبعاً +طبعة +طبعت +طبعته +طبعتها +طبعه +طبعها +طبعهم +طبعي +طبعًا +طبـعه +طبق +طبقا +طبقات +طبقاته +طبقاً +طبقة +طبقت +طبقتها +طبقي +طبقًا +طبلية +طبول +طبوله +طبي +طبيا +طبياً +طبيب +طبيبا +طبيبان +طبيباً +طبيبة +طبيبه +طبيبهم +طبيبًا +طبية +طبيعة +طبيعتنا +طبيعته +طبيعتها +طبيعتي +طبيعي +طبيعيا +طبيعياً +طبيعية +طبيعيين +طبيعيًّا +طبّقت +طبّيًّا +طحلب +طحين +طرأ +طرأت +طرائف +طرائفها +طرائق +طرابلس +طرابلسى +طراز +طرازاتها +طرازه +طرافة +طربوش +طرت +طرح +طرحت +طرحته +طرحه +طرحها +طرحًا +طرد +طردته +طردها +طردهم +طردوا +طردية +طرطور +طرف +طرفا +طرفان +طرفاها +طرفة +طرفه +طرفها +طرفهم +طرفي +طرفًا +طرق +طرقا +طرقات +طرقاً +طرقة +طرقت +طرقتين +طرقها +طرقهم +طرقهن +طرقي +طرقًا +طرنا +طروادة +طروحاته +طري +طريا +طرياً +طرية +طريف +طريفا +طريفة +طريق +طريقا +طريقان +طريقاً +طريقة +طريقتنا +طريقته +طريقتها +طريقتي +طريقتين +طريقك +طريقنا +طريقه +طريقها +طريقهم +طريقهما +طريقي +طريقين +طريقًا +طرَحها +طرّاحة +طرّاحته +طزاجة +طزاجتها +طشقند +طعام +طعاما +طعاماً +طعامكم +طعامنا +طعامه +طعامها +طعامهم +طعامي +طعامًا +طعم +طعما +طعماً +طعمه +طعمها +طعن +طعوم +طـرحت +طفا +طفايات +طفت +طفح +طفرات +طفرة +طفرت +طفل +طفلا +طفلاً +طفلة +طفلته +طفلتها +طفلتين +طفلها +طفلين +طفنا +طفولة +طفولتك +طفولته +طفولتها +طفولتهم +طفولتي +طفولي +طفولياً +طفولية +طفيفا +طفيفة +طفيل +طفيليات +طق +طقاطقة +طقت +طقسا +طقساً +طقسها +طقم +طقوس +طقوسه +طلاءات +طلاءاته +طلائع +طلائعهم +طلائها +طلاب +طلابا +طلابنا +طلابه +طلابها +طلابهم +طلابي +طلابية +طلابًا +طلاس +طلاسم +طلاسمها +طلاق +طلال +طلاوتهما +طلب +طلبا +طلبات +طلباته +طلباً +طلبة +طلبت +طلبته +طلبتها +طلبتُ +طلبنا +طلبه +طلبها +طلبي +طلبًا +طلت +طلخا +طلع +طلعت +طلعنا +طلعوا +طلقات +طلقة +طلمبات +طلميثة +طلوع +طلي +طليعة +طليعتها +طليعتهم +طليعية +طليق +طليقاً +طليقة +طمأنينتك +طماطم +طمحوا +طمس +طمع +طموح +طموحا +طموحات +طموحاتك +طموحاتكم +طموحاته +طموحاتي +طموحة +طموحـات +طموحي +طن +طنافس +طناً +طنجة +طه +طهاة +طهران +طهنا +طهيت +طهيه +طهّرا +طوائف +طوابق +طوابير +طواحين +طوارئ +طواعية +طوافات +طوال +طواه +طواها +طواهم +طوب +طوباس +طوخ +طور +طورت +طورتها +طورد +طوره +طوروا +طوعاً +طوعيا +طوعًا +طوفان +طوفت +طوق +طوقان +طوقتني +طوكيو +طول +طولا +طولانيتان +طولاً +طوله +طولها +طولياً +طولية +طومان +طومانباي +طوى +طويت +طويل +طويلا +طويلاً +طويلاًً +طويلب +طويلة +طويلتان +طويلين +طويناها +طوّرت +طوَّر +طوَّع +طي +طيء +طياته +طياتها +طيار +طياراً +طيارون +طيب +طيبا +طيباً +طيبة +طيبون +طيبين +طير +طيرا +طيران +طيرانه +طيرانها +طيش +طيطوس +طيعة +طيـلة +طيف +طيفاً +طيفه +طيلة +طينته +طينية +طيور +طيوراً +طيوره +طيورها +طيّ +طيّاتها +طيَّب +طيَّرت +طُرح +طُرحت +طُردوا +طُرق +طُرّة +طُفيل +طُلب +ظ +ظالم +ظالما +ظالمة +ظالمنا +ظانا +ظاهر +ظاهرة +ظاهرتان +ظاهرتها +ظاهرها +ظاهريا +ظاهرياً +ظاهريًا +ظبي +ظبياً +ظرف +ظرفه +ظروف +ظروفا +ظروفاً +ظروفه +ظروفهم +ظروفي +ظل +ظلا +ظلال +ظلالا +ظلاله +ظلام +ظلاما +ظلت +ظلتا +ظللنا +ظلم +ظلما +ظلمائه +ظلماً +ظلمة +ظلمنا +ظله +ظلها +ظلوا +ظلي +ظلّ +ظلّت +ظلّها +ظلٌّ +ظلَّ +ظلَّت +ظمأ +ظمأه +ظن +ظنت +ظنته +ظنك +ظننا +ظننت +ظننتك +ظنه +ظنها +ظنهم +ظنوا +ظني +ظنًا +ظهر +ظهرا +ظهراني +ظهرانينا +ظهراً +ظهرت +ظهرك +ظهرنا +ظهره +ظهرها +ظهروا +ظهري +ظهرية +ظهرًا +ظهور +ظهوراً +ظهوره +ظهورها +ظهورهم +ظهورهِ +ظهيرة +ظواهر +ظواهره +ظواهرها +ع +عا +عائد +عائدا +عائدات +عائداتها +عائداً +عائدة +عائده +عائدين +عائدًا +عائذ +عائش +عائشا +عائشة +عائق +عائقا +عائقاً +عائلات +عائلاتهم +عائلة +عائلته +عائلتها +عائلتي +عائله +عائلي +عائلية +عائلين +عاب +عابئ +عابئة +عابئين +عابثة +عابد +عابدون +عابدًا +عابر +عابرا +عابرة +عابرون +عابري +عابرين +عابرًا +عابرِ +عابساً +عابسة +عابق +عابىء +عات +عاتب +عاتبه +عاتق +عاتقه +عاتقها +عاث +عاثت +عاجز +عاجزا +عاجزاً +عاجزة +عاجزون +عاجزين +عاجل +عاجلا +عاجلاً +عاجلة +عاجلها +عاجي +عاد +عادا +عادات +عاداتنا +عاداته +عاداتها +عادة +عادةً +عادت +عادتك +عادته +عادتها +عادتي +عادل +عادلا +عادلة +عادوا +عادى +عادي +عاديا +عاديات +عادياً +عادية +عاديون +عاديًّا +عارض +عارضاً +عارضت +عارضًا +عارف +عارفًا +عارمة +عاري +عاريا +عاريات +عارياً +عارية +عازف +عازفا +عازفون +عازفي +عازفًا +عازل +عازلة +عازم +عاش +عاشت +عاشته +عاشتها +عاشرة +عاشق +عاشقا +عاشقة +عاشه +عاشها +عاشوا +عاشور +عاشوها +عاص +عاصرة +عاصروا +عاصف +عاصفا +عاصفة +عاصمة +عاصمته +عاصمتها +عاصي +عاطرة +عاطف +عاطفة +عاطفي +عاطفية +عاطل +عاطلون +عافاككم +عافاه +عافية +عافيته +عافيتها +عاقبة +عاقبته +عاقدة +عاقدًا +عاقلة +عاكساً +عاكسة +عاكف +عاكفة +عال +عالة +عالتمام +عالج +عالجت +عالجها +عالجهم +عالقة +عالقةً +عالم +عالما +عالمال +عالمان +عالماً +عالمة +عالمنا +عالمه +عالمها +عالمهم +عالمي +عالميا +عالمياً +عالمية +عالميةً +عالمين +عالميون +عالميين +عالميًا +عالميًّا +عالميْن +عالمًا +عالمٍ +عالي +عاليا +عالياً +عالية +عاليتين +عاليًا +عالٍ +عالَمان +عالِم +عالِمي +عام +عاما +عامان +عاماً +عامة +عامةً +عامداً +عامدة +عامدين +عامر +عامراً +عامرة +عامـًا +عامل +عاملا +عاملان +عاملاً +عاملة +عاملتني +عاملته +عامله +عاملوا +عاملي +عامليا +عاملين +عامه +عامها +عامى +عامي +عامية +عاميتها +عامين +عامًا +عامّ +عاناه +عاناها +عانت +عانته +عاندته +عانقني +عانوا +عانى +عانيت +عاهة +عاهدت +عاهدوا +عاود +عاودت +عاودني +عاودوا +عايدوه +عايش +عايشت +عايض +عاين +عاينت +عب +عبء +عبأ +عبئا +عبئاً +عباءة +عباءته +عباءتها +عباب +عباد +عبادة +عباده +عبادي +عبارات +عباراته +عبارة +عبارتان +عبارته +عباس +عباسيا +عبث +عبثا +عبثاً +عبثت +عبثي +عبثية +عبثًا +عبد +عبدالجبار +عبدالحفيظ +عبدالحق +عبدالحكيم +عبدالحليم +عبدالحميد +عبدالر +عبدالرؤوف +عبدالرازق +عبدالرحمن +عبدالرزاق +عبدالرسول +عبدالرشيد +عبدالسلام +عبدالصبور +عبدالصمد +عبدالعزيز +عبدالفتاح +عبدالقادر +عبدالقدوس +عبدالكريم +عبداللطيف +عبدالله +عبدالمحسن +عبدالمطلب +عبدالملك +عبدالمنعم +عبدالناصر +عبدالنبي +عبدالهادي +عبدالوهاب +عبداً +عبدتُك +عبده +عبدهما +عبدو +عبدَ +عبر +عبرات +عبرت +عبره +عبرها +عبرهما +عبروا +عبس +عبـر +عبـرها +عبق +عبقا +عبقر +عبقري +عبقريات +عبقرياته +عبقرية +عبقريته +عبقريتها +عبلة +عبوات +عبواتها +عبود +عبودية +عبوديته +عبور +عبورها +عبورهم +عبيد +عبيدا +عبيداً +عبَّه +عبّر +عبّرت +عبّرتُ +عبَّ +عتاب +عتبات +عتبة +عتبته +عتمة +عتمه +عته +عتيق +عتيقا +عتيلة +عثة +عثر +عثرة +عثرت +عثرنا +عثروا +عثمان +عثمانية +عج +عجائبها +عجاف +عجافٍ +عجب +عجبا +عجبت +عجبهم +عجبًا +عجبَ +عجز +عجزت +عجزنا +عجزه +عجزها +عجزهم +عجزًا +عجفاء +عجل +عجلا +عجلات +عجلاتها +عجلة +عجلت +عجمان +عجوز +عجوزا +عجيب +عجيباً +عجيبة +عجينة +عجيني +عجّل +عجَّلت +عد +عدا +عداء +عدائي +عدائيا +عدائية +عداد +عدادات +عدالة +عداه +عداها +عداهما +عداوات +عداوتهم +عدة +عدت +عدتنا +عدته +عدتَ +عدد +عددا +عددالطيور +عددان +عدداً +عدداَ +عددت +عدده +عددها +عددهم +عددهن +عددًا +عدسات +عدسته +عدل +عدلت +عدم +عدمها +عدن +عدنا +عدنان +عده +عدها +عدو +عدوا +عدوان +عدوانه +عدوانها +عدواها +عدوتك +عدوك +عدوهم +عدوى +عدوي +عدوّ +عدوّاً +عدوّهم +عدي +عديد +عديدات +عديدة +عديدون +عديدين +عديم +عديمة +عدّة +عدّه +عدَّ +عدَّة +عذاب +عذابات +عذاباتك +عذاباتنا +عذاراهن +عذارى +عذب +عذبة +عذبهم +عذبي +عذبيني +عذر +عذرا +عذراء +عذري +عذوبة +عذوق +عذَّبها +عراء +عرائس +عرائض +عراب +عرابها +عرابي +عراجين +عراجينها +عراق +عراقة +عراقتها +عراقي +عراقيا +عراقية +عراقيي +عراقيين +عراقيًا +عراوٍ +عرايا +عرب +عربا +عربات +عرباته +عرباتهم +عرباً +عربة +عربهم +عربي +عربيا +عربيات +عربيان +عربياً +عربية +عربيتين +عربيًا +عربيّ +عرس +عرسا +عرسان +عرش +عرشه +عرشها +عرض +عرضا +عرضاً +عرضة +عرضت +عرضتا +عرضتها +عرضحالجيا +عرضناها +عرضه +عرضها +عرضهم +عرضوا +عرضي +عرضية +عرضين +عرضيّة +عرضًا +عرف +عرفات +عرفاً +عرفة +عرفت +عرفتم +عرفتني +عرفته +عرفتها +عرفتهم +عرفتيه +عرفتُ +عرفنا +عرفناه +عرفناها +عرفه +عرفها +عرفوا +عرفوه +عرفوها +عرق +عرقل +عرقلة +عرقه +عرقهم +عرقي +عرقية +عروا +عروبة +عروبته +عروبيي +عروة +عروس +عروسك +عروسه +عروسي +عروسين +عروض +عروضاً +عروضه +عروضها +عروضيا +عروقنا +عروقها +عرى +عريض +عريضان +عريضاً +عريضة +عريق +عريقة +عريه +عرّافي +عرّضه +عرّف +عز +عزاء +عزاؤه +عزائي +عزام +عزة +عزت +عزتهم +عزرا +عزز +عززت +عزف +عزفا +عزفه +عزفها +عزل +عزلة +عزلته +عزلتي +عزلها +عزم +عزماً +عزمت +عزمه +عزمهم +عزمي +عزو +عزوت +عزوته +عزوف +عزوفا +عزيز +عزيزاً +عزيزة +عزيزتي +عزيزى +عزيزي +عزيمة +عزيمته +عزّ +عزّت +عزَّ +عساليج +عسانا +عساني +عسر +عسرة +عسروا +عسكرت +عسكري +عسكريا +عسكرياً +عسكرية +عسكريتين +عسل +عسلا +عسلاً +عسله +عسلية +عسول +عسى +عسير +عسيرا +عسيرة +عش +عشاء +عشاءه +عشارا +عشاق +عشاقها +عشان +عشب +عشبة +عشبي +عشبية +عشت +عشتار +عشتروت +عشتها +عشر +عشرات +عشراتها +عشراوي +عشراً +عشربن +عشرة +عشرتي +عشرون +عشري +عشرين +عشريني +عشرينيات +عشرِ +عشق +عشقا +عشقت +عشقنا +عشقه +عشقي +عشن +عشنا +عشه +عشهما +عشوائي +عشي +عشية +عشيرة +عشيرته +عشيقة +عشيقته +عشّاقنا +عصا +عصائر +عصابات +عصابة +عصابية +عصاة +عصاته +عصاراته +عصارة +عصافير +عصام +عصامي +عصاه +عصاها +عصب +عصبة +عصبي +عصبياً +عصبية +عصر +عصرا +عصراً +عصرنا +عصره +عصرها +عصرهن +عصري +عصرية +عصرًا +عصف +عصفت +عصفور +عصفوران +عصفورة +عصفورين +عصمة +عصمت +عصور +عصوره +عصورها +عصورهم +عصي +عصيان +عصيانه +عصياً +عصية +عصير +عصيين +عصيّات +عصيًّا +عضال +عضلات +عضلاته +عضلاتها +عضلة +عضلي +عضلية +عضو +عضوا +عضوات +عضواً +عضوة +عضوي +عضويا +عضوية +عضويته +عضويتها +عضوًا +عضيمة +عطا +عطاء +عطاءات +عطاءاته +عطاءه +عطاؤه +عطائنا +عطائها +عطائي +عطار +عطارد +عطاس +عطاياهم +عطر +عطرا +عطرك +عطره +عطرها +عطري +عطس +عطش +عطشاً +عطشى +عطشي +عطف +عطفا +عطفاً +عطفهم +عطل +عطلات +عطلة +عطلت +عطلته +عطلهم +عطوان +عطور +عطوف +عطوفًا +عطية +عطيرات +عطيل +عظاءة +عظام +عظامه +عظامي +عظم +عظماء +عظمة +عظمته +عظمتها +عظمك +عظمنا +عظمى +عظمي +عظميا +عظيم +عظيما +عظيماً +عظيمة +عظيمًا +عظيمٍ +عظُم +عظُمت +عـام +عــنها +عـلي +عـند +عفا +عفان +عفريتًا +عفلق +عفنا +عفو +عفوا +عفوي +عفوياً +عفوية +عفويتها +عفويتهم +عفويّ +عفية +عفيف +عفّان +عقائد +عقائده +عقائدها +عقائدي +عقائديان +عقائدياً +عقائدية +عقاب +عقابا +عقاباً +عقابيله +عقار +عقارا +عقاراً +عقارب +عقاري +عقارياً +عقارية +عقارًا +عقاقير +عقاقيرها +عقب +عقبات +عقبان +عقباننا +عقباه +عقباها +عقبة +عقبهما +عقد +عقدة +عقدت +عقدته +عقدتها +عقده +عقدها +عقدوا +عقدوه +عقدي +عقدياً +عقدية +عقدين +عقدًا +عقر +عقران +عقرب +عقربا +عقــل +عقل +عقلا +عقلانية +عقلة +عقله +عقلها +عقلهم +عقلي +عقليا +عقلية +عقليته +عقليًا +عقليّة +عقوبات +عقوباته +عقوبة +عقوبته +عقود +عقودا +عقودها +عقول +عقولكم +عقولنا +عقوله +عقولها +عقولهم +عقيدات +عقيدة +عقيدتها +عقيدتهم +عقيل +عقيمات +عكا +عكازتين +عكاشة +عكاظ +عكاوية +عكر +عكرا +عكرمة +عكس +عكسه +عكسياً +عكسية +عكف +عكفت +عكَس +عكّازَ +عل +علا +علاء +علائق +علائم +علاتها +علاج +علاجا +علاجات +علاجاً +علاجه +علاجها +علاجهم +علاجيا +علاجية +علاجًا +علاقات +علاقاته +علاقاتها +علاقاتهم +علاقاتهما +علاقاتي +علاقة +علاقتنا +علاقته +علاقتها +علاقتهم +علاقتهما +علاقتي +علام +علامات +علاماته +علامة +علامتين +علان +علانية +علاها +علاوة +علب +علبة +علبتك +علبته +علبتين +علشان +علـــق +علـى +علق +علقت +علقني +علك +علل +عللت +عللها +عللهم +علم +علما +علماء +علماؤنا +علماؤه +علمائنا +علمائه +علمائها +علمائهم +علمان +علماني +علمانية +علمانيتهم +علمانيي +علماً +علمت +علمتنا +علمتني +علمك +علمكم +علمنا +علمني +علمه +علمها +علمهم +علموا +علموني +علموها +علمي +علميا +علمياً +علمية +علمين +علميًا +علميًّا +علمًا +علمْتُ +علنا +علني +علنيا +عله +علها +علو +علوا +علوة +علوم +علومه +علومها +علومي +علومًا +علوي +علويا +علوية +علوٍ +على +علىعشائي +علي +عليا +علياء +عليائها +علية +عليج +عليـها +عليك +عليكم +عليكما +عليلاً +عليم +علينا +عليه +عليها +عليهم +عليهما +عليهن +عليَ +عليّ +عليّا +عليّاستمر +عليًّا +عليٌّ +عليَّ +علٍ +علّتك +علّق +علّقت +علّك +علّم +علّمتني +علّمك +علّمه +علّمها +علّموا +علّني +علّها +علَّق +عم +عما +عماد +عمادات +عمادة +عمار +عماراتها +عمارة +عمارته +عمارتها +عمارتهم +عمال +عمالة +عمالقة +عمامة +عمامته +عمان +عمانوئيل +عماني +عمة +عمتكم +عمتنا +عمته +عمتي +عمد +عمدا +عمدة +عمدت +عمدوا +عمر +عمران +عمرانها +عمرانية +عمراً +عمرة +عمرت +عمرسنة +عمرك +عمرنا +عمرناها +عمره +عمرها +عمرهم +عمرو +عمري +عمرية +عمريتين +عمق +عمقا +عمقاً +عمقه +عمقها +عمك +عمل +عملا +عملاء +عملائه +عملائها +عملات +عملاتها +عملاق +عملاقا +عملاقة +عملاقًا +عملان +عملاً +عملة +عملت +عملتم +عملته +عملك +عملكم +عملن +عملنا +عمله +عملها +عملهم +عملوا +عملي +عمليا +عمليات +عملياته +عملياتها +عملياتهم +عملياتيا +عملياً +عملية +عمليتها +عمليتي +عمليتين +عملين +عمليّات +عمن +عمه +عمود +عموداً +عمودي +عمودية +عمورية +عمولة +عموم +عموما +عموماً +عمومة +عمومتها +عمومي +عمي +عمياء +عميات +عميد +عميدا +عميداً +عميدًا +عميق +عميقا +عميقاً +عميقة +عميقًا +عميل +عمّ +عمّآ +عمّا +عمّال +عمّان +عمّت +عمّك +عمّي +عمَّا +عن +عنا +عناء +عنات +عناد +عناصر +عناصرا +عناصره +عناق +عناقاً +عناقها +عنان +عناني +عناهم +عناوين +عناوينها +عناية +عنايته +عنب +عنترة +عنخ +عند +عندئذ +عندا +عندالسعال +عندك +عندكم +عندكِ +عندليب +عندما +عندنا +عنده +عندها +عندهم +عندهن +عندي +عنزان +عنصر +عنصرا +عنصران +عنصراً +عنصري +عنصرية +عنصرين +عنــدما +عنف +عنفا +عنفها +عنق +عنقه +عنقها +عنقود +عنقي +عنك +عنكما +عنكِ +عنه +عنها +عنهم +عنهما +عنوان +عنوانا +عنوانان +عنواناً +عنوانه +عنوانها +عنوانهما +عنوة +عنونة +عنونت +عني +عنيت +عنيد +عنيدا +عنيداً +عنيدة +عنيف +عنيفا +عنيفاً +عنيفة +عنيناه +عنّا +عهد +عهدئذ +عهداً +عهدة +عهدتك +عهدذاك +عهدك +عهده +عهدها +عهدهم +عهدهِ +عهدي +عهود +عهودها +عوائد +عوائدها +عوائق +عوائل +عواد +عوادم +عوارض +عوارها +عواصف +عواصم +عواقبه +عوالم +عوالمها +عواماته +عوامل +عود +عودا +عوداً +عودة +عودتك +عودتنا +عودته +عودتها +عودتهم +عودتي +عودهم +عودي +عورات +عورة +عوز +عوض +عوضا +عوضاً +عوضًا +عوف +عوقبت +عول +عولج +عولجت +عولجوا +عولمة +عولمته +عولمتها +عوملوا +عون +عونك +عونًا +عونٍ +عويس +عويص +عويضة +عويل +عوّد +عوّض +عوَّض +عى +عياد +عيادات +عيادة +عيادته +عيار +عيارات +عياره +عياض +عياضاً +عيال +عيالها +عيان +عياناها +عيب +عيبا +عيبان +عيباً +عيد +عيدان +عيداً +عيسان +عيسى +عيش +عيشة +عيشهم +عيشي +عيل +عين +عينا +عينات +عيناك +عينان +عيناه +عيناها +عيناي +عينة +عينت +عينه +عينها +عينوا +عينوه +عيني +عينية +عينيك +عينين +عينيه +عينيها +عينيّ +عيوب +عيوبا +عيوبه +عيوبها +عيون +عيونج +عيونكم +عيوننا +عيونه +عيونها +عيونهم +عيونهما +عيونهن +عيوني +عيّن +عيّنة +عيّنوه +عيِّناته +عَامِلٍ +عَاهَدُوا +عَزِيزٌ +عَظِيمٍ +عَكْسَ +عَلَماً +عَلَيْهِ +عَمَلَ +عَنون +عَنِ +عَنْهُمْ +عَهِد +عَيْن +عُتّق +عُثر +عُدّ +عُذرة +عُرض +عُرضت +عُرف +عُرفت +عُرْس +عُرْساً +عُشْر +عُقدة +عُلم +عُمان +عُمد +عُمِّر +عُني +عُوِّضتُ +عُين +عُيِّن +عِرضها +عِزُّ +عِقدٍ +عِلْمًا +عِندَ +عِنْدَهُ +عِنْدِ +ـ +ـت +ــ +ـــ +ــفنــ +ـك +ف +فآرنست +فآمل +فأبادر +فأبت +فأبدأ +فأبدت +فأبدعوا +فأبدى +فأبرأتهم +فأبعد +فأبقاها +فأبواب +فأبوه +فأبى +فأتاح +فأتت +فأتحرّر +فأتسلل +فأتقنت +فأتوني +فأتى +فأثار +فأثمرت +فأثملهم +فأجاب +فأجابني +فأجابه +فأجابها +فأجازه +فأجبت +فأجد +فأجرى +فأجريت +فأجمعوا +فأجهزة +فأجيب +فأحاطته +فأحببت +فأحبّه +فأحدث +فأحدهما +فأحزان +فأحس +فأحسسنا +فأحسها +فأحضر +فأحضرت +فأحيي +فأخبر +فأخبرته +فأخبريني +فأخذ +فأخذت +فأخذته +فأخذنا +فأخرج +فأخرجوا +فأخطأ +فأخطر +فأخطُّ +فأداة +فأدبه +فأدخل +فأدخلته +فأدرك +فأدركت +فأدركته +فأدركوا +فأدى +فأذعن +فأذكر +فأذهب +فأر +فأراد +فأرادت +فأراني +فأراود +فأرتجع +فأرتعش +فأردد +فأرزق +فأرسل +فأرسلت +فأرسله +فأرسلوا +فأرفعه +فأس +فأساءت +فأسبابها +فأسجله +فأسد +فأسرع +فأسس +فأسعى +فأسقط +فأسقطته +فأسهب +فأسًا +فأشار +فأشاع +فأشرت +فأشعر +فأشهد +فأصاب +فأصابتها +فأصبح +فأصبحت +فأصبحوا +فأصدر +فأصدرت +فأصمت +فأضاء +فأضجر +فأضعف +فأطراف +فأطفأ +فأطلب +فأظهر +فأظهروا +فأعاد +فأعانته +فأعتقد +فأعجب +فأعجبه +فأعجبوا +فأعرض +فأعطاه +فأعطاها +فأعطاهم +فأعطت +فأعطيتها +فأعلن +فأعلنوا +فأعلنوك +فأعماله +فأعمق +فأعملت +فأعود +فأفاد +فأفادنى +فأفدح +فأفرج +فأفضل +فأقام +فأقاموا +فأقبل +فأقرؤه +فأقسمت +فأقصى +فأقـــلبها +فأقفل +فأقل +فأقمت +فأقنع +فأقول +فأقوى +فأكثر +فأكد +فأكمل +فأل +فألقت +فألقى +فألقي +فأما +فأمثلة +فأمر +فأمره +فأمريكا +فأمسكها +فأمضيت +فأن +فأنا +فأنام +فأنت +فأنتج +فأنتم +فأنجزه +فأنزل +فأنسى +فأنشأ +فأنشأت +فأنشأوا +فأنكر +فأنه +فأهاب +فأهداه +فأهلكهم +فأهم +فأهملوها +فأود +فأوضح +فأوفد +فأوفدت +فأوقف +فأوقفها +فأولا +فأومن +فأي +فأيقن +فأيقَظت +فأين +فأيهما +فأيٌ +فأَمّا +فأُجيبه +فأُنشئت +فؤاد +فؤادك +فؤاده +فؤادها +فإدارته +فإذا +فإذن +فإسرائيل +فإلى +فإما +فإن +فإنقاذ +فإنك +فإنكم +فإنما +فإننا +فإنني +فإنه +فإنها +فإنهم +فإنهما +فإني +فإنّ +فإنَّك +فئات +فئاتها +فئة +فائدة +فائدتها +فائض +فائق +فائقات +فائقة +فابتسمت +فابتعد +فابتعدت +فابن +فابنا +فابنته +فات +فاتتني +فاتجه +فاتجهت +فاتح +فاتحا +فاتحة +فاتحـة +فاتحين +فاتحًا +فاتخذ +فاتخذوها +فاتر +فاترينات +فاترينة +فاتسعت +فاتسلاف +فاتصل +فاتصلت +فاتفق +فاتفقت +فاتك +فاتكم +فاتنات +فاتنة +فاتنته +فاتني +فاته +فاتورة +فاجأ +فاجأت +فاجأته +فاجأتها +فاجأني +فاجأهم +فاجتاحها +فاجتازت +فاجتمع +فاجع +فاجنر +فاجيه +فاحتال +فاحتجزتها +فاحتدم +فاحترمته +فاحتمل +فاحسن +فاحصة +فاحصه +فاحم +فاحمد +فاختار +فاختارت +فاخترت +فاخترعوا +فاختطفه +فاختلطت +فاختياره +فاختير +فاخر +فاخراً +فاخرة +فاخوري +فادح +فادحة +فادع +فادفع +فادية +فاذا +فارا +فارتجف +فارتفاع +فارتفعت +فارتكبت +فارتمى +فارتوى +فارس +فارسا +فارسي +فارسيما +فارسين +فارق +فارقة +فارقتها +فارنوش +فارهة +فارو +فاروق +فاز +فازت +فازداد +فازدادت +فاس +فاسأل +فاستأجروا +فاستحال +فاستدار +فاستدعوه +فاستشاط +فاستصدرت +فاستطاع +فاستعاد +فاستعماله +فاستعن +فاستعنت +فاستقال +فاستقامت +فاستقبله +فاستناده +فاستنكر +فاستهدف +فاستوت +فاستوعبها +فاستيقظت +فاسد +فاسدا +فاسداً +فاسدة +فاسمح +فاسمع +فاسمه +فاسو +فاسيل +فاشترى +فاشتهر +فاشل +فاشلا +فاشلة +فاصطدم +فاصل +فاصلا +فاصلاً +فاصلة +فاصلٌ +فاض +فاضح +فاضحاً +فاضحة +فاضطر +فاضطررت +فاضطروا +فاضل +فاضلة +فاضي +فاطمة +فاطمية +فاعتبرت +فاعتذرت +فاعترضوها +فاعتقل +فاعتمد +فاعرف +فاعل +فاعلا +فاعلاً +فاعلة +فاعلون +فاعلي +فاعلية +فاعليتها +فاعلين +فافخر +فاق +فاقت +فاقتحم +فاقترب +فاقتربت +فاقترح +فاقترحت +فاقتنعوا +فاقد +فاقدو +فاقدًا +فاقرؤها +فاقمت +فاقها +فاقهم +فاقوس +فاكتسب +فاكتشف +فاكتفوا +فاكتفي +فاكتفيت +فاكساً +فالآيات +فالأب +فالأحفورة +فالأختام +فالأخذ +فالأدب +فالأدباء +فالأرض +فالأرقام +فالأزرق +فالأسباب +فالأسرة +فالأسلوب +فالأسوار +فالأشقياء +فالأشهرُ +فالأصلح +فالأطفال +فالأعمدة +فالأفضل +فالأفكار +فالأقرب +فالأقصى +فالأقطاب +فالأكواخ +فالأم +فالأمر +فالأمل +فالأمن +فالأموال +فالأنثى +فالأنساق +فالأولى +فالأيام +فالإبداعات +فالإرث +فالإسراف +فالإسلام +فالإشارات +فالإصبع +فالإمكانات +فالإنترنت +فالإنسان +فالإيمان +فالابتسامة +فالاثنان +فالاحتجاز +فالاختلاج +فالارقام +فالاستثمار +فالاستقرار +فالاستقلال +فالاعتدال +فالاعتراف +فالاقتصادات +فالانتفاضة +فالاندفاعة +فالبابون +فالباحث +فالباكستانيون +فالبامبو +فالبحر +فالبدلات +فالبديل +فالبربر +فالبشر +فالبعد +فالبعض +فالبعوض +فالبلاستيك +فالبنود +فالبيت +فالتأنيب +فالتجربة +فالتحدي +فالتحديث +فالتحق +فالتحقت +فالتر +فالتراب +فالترانزستورات +فالتركيب +فالتسامح +فالتطور +فالتعرض +فالتعريف +فالتعليم +فالتفت +فالتقارب +فالتقارير +فالتقفه +فالتقليد +فالتلوث +فالتماثل +فالتمثيل +فالتمر +فالتنفس +فالتوقيت +فالتيوفيللين +فالثابت +فالثعالب +فالثور +فالثورة +فالجائزة +فالجاحظ +فالجزر +فالجماعة +فالجمال +فالجميع +فالجهود +فالجيل +فالح +فالحب +فالحجاب +فالحد +فالحديث +فالحرب +فالحركة +فالحروب +فالحسن +فالحشيش +فالحصان +فالحضارة +فالحقيقة +فالحكمة +فالحياة +فالحيتان +فالخارج +فالخبراء +فالخلفيات +فالخيال +فالخيوط +فالداعية +فالدراسة +فالدكتور +فالدكتورة +فالدموع +فالدميةُ +فالدواء +فالدودة +فالدول +فالديانة +فالديس +فالدين +فالذاكرة +فالذهب +فالذي +فالذين +فالرؤيا +فالرؤية +فالراعي +فالراوي +فالرب +فالرباط +فالرجال +فالرجل +فالرجولة +فالرسم +فالرطوبة +فالرقائق +فالرقابة +فالرمز +فالريع +فالزمكان +فالزوار +فالزوجة +فالس +فالسؤال +فالسبب +فالسعادةُ +فالسفر +فالسكوت +فالسوق +فالسياسة +فالسيبارام +فالسيجار +فالشأن +فالشاعر +فالشبكية +فالشجرة +فالشخص +فالشخصيات +فالشعور +فالشمس +فالشوارع +فالشيفرة +فالشيّاب +فالصبر +فالصحراء +فالصقر +فالصورة +فالصين +فالضحك +فالضرر +فالضفة +فالضيوف +فالطاقات +فالطبقات +فالطبقة +فالطبيعة +فالطرفان +فالطريف +فالطفل +فالظروف +فالعالم +فالعبادات +فالعبرة +فالعديد +فالعراق +فالعرب +فالعربي +فالعروبة +فالعسل +فالعقاد +فالعقارب +فالعقبان +فالعقل +فالعقلية +فالعلاقة +فالعلم +فالعلماء +فالعلوم +فالعمل +فالعملية +فالعوامل +فالفائدة +فالفارق +فالفتاة +فالفساد +فالفصل +فالفضل +فالفن +فالفنان +فالفيل +فالفيلم +فالق +فالقات +فالقارب +فالقبيلة +فالقدس +فالقرآن +فالقراءة +فالقرار +فالقرية +فالقصة +فالقصيدة +فالقضية +فالقطعة +فالقلق +فالقنفذ +فالقوانين +فالقول +فالكائنات +فالكاتب +فالكبيسي +فالكتاب +فالكثرة +فالكثير +فالكثيرون +فالكفاح +فالكلام +فالكلب +فالكلمات +فالكلمة +فالكمبيوتر +فالكميات +فالكمية +فاللائكية +فاللجنين +فاللمسات +فاللهجة +فاللوب +فالليلة +فالمؤرخون +فالماء +فالمباشر +فالمتعب +فالمتهم +فالمجتمع +فالمحاولات +فالمخاطرة +فالمدة +فالمدرات +فالمدن +فالمدينة +فالمرأة +فالمرايا +فالمربع +فالمرشحون +فالمسئول +فالمساحة +فالمساهمات +فالمستعمرة +فالمسرح +فالمسرحية +فالمسروقات +فالمسلمات +فالمسلمون +فالمشكلة +فالمصاب +فالمضاربات +فالمطعم +فالمعادلات +فالمعترف +فالمعتمر +فالمعدة +فالمعروف +فالمقارنة +فالمقدرة +فالمقدمات +فالمقطعان +فالمقياس +فالمكان +فالمكسيك +فالمكونات +فالملابس +فالملاحظ +فالمليونير +فالممثل +فالمنطقة +فالمهم +فالموت +فالموجود +فالموسم +فالموقف +فالمياه +فالناس +فالنبتة +فالنجاح +فالنحل +فالنخلة +فالنسيا +فالنشاط +فالنضال +فالنظام +فالنقب +فالنموذج +فالنهضة +فالنيل +فالهرمون +فالهند +فالهواء +فالهوية +فالواقع +فالوالد +فالوجهان +فالوجود +فالوزن +فالوسط +فالوطن +فالوعي +فالولادات +فالولايات +فامتد +فاميلي +فان +فانبرى +فانبهر +فانتابهم +فانتحل +فانتحيا +فانتخب +فانتشر +فانتشرت +فانتصار +فانتظري +فانتفض +فانتقل +فانتقلت +فانتهى +فانخرطا +فانخفضت +فاندثرت +فاندفع +فانسيدار +فانشدك +فانشرح +فانشطرت +فانصرف +فانضم +فانطلقت +فانظر +فانعطف +فانعقدت +فانفجر +فانفجروا +فانهزم +فاهتدوا +فاهتدى +فاهتم +فاوتد +فاونسا +فايدة +فايز +فايزة +فايزر +فب +فبإمكانك +فبئر +فباعتبار +فباقي +فبالأمس +فبالإضافة +فبالإيمان +فبالصدق +فبالطبع +فبالعلم +فبالقبلة +فبالقروض +فبالنسبة +فبانتْ +فبدأ +فبدأت +فبدأنا +فبدأوا +فبدا +فبدت +فبدرجات +فبدل +فبدلا +فبراير +فبرزت +فبسببها +فبسط +فبعد +فبعدد +فبعدما +فبعدها +فبعض +فبعضها +فبعضهم +فبعضهن +فبقدر +فبقيت +فبكى +فبم +فبمقدار +فبنوا +فبها +فبيعت +فبين +فبينما +فتأتي +فتأثر +فتأكدت +فتأمل +فتأمَّلي +فتؤثر +فتئ +فتئت +فتابع +فتابعت +فتابعنا +فتاة +فتات +فتاتان +فتاتي +فتاح +فتاحة +فتارة +فتاك +فتاكا +فتاوى +فتبحث +فتبحر +فتبددت +فتبدو +فتبقى +فتبقيه +فتتجمع +فتتجه +فتتحرر +فتتحسن +فتتحمل +فتتحول +فتتخذه +فتتخطاه +فتتخطَّي +فتتداخل +فتتدهور +فتتذكر +فتتراجع +فتتراكب +فتتردى +فتترك +فتتسبب +فتتضاعف +فتتعاظم +فتتعاقب +فتتعدد +فتتعرف +فتتعلم +فتتفاقم +فتتكاثر +فتتكفّلان +فتتلاشى +فتتلاعب +فتتلخص +فتتمايل +فتتمدد +فتتميز +فتثبت +فتثبّت +فتثقل +فتجاوزت +فتجد +فتجدها +فتجرعت +فتجري +فتجعل +فتجف +فتجنب +فتجيب +فتجيبني +فتح +فتحا +فتحات +فتحبطنا +فتحة +فتحت +فتحتهما +فتحجب +فتحدث +فتحدد +فتحركت +فتحرم +فتحسنت +فتحصل +فتحفز +فتحقق +فتحلم +فتحمله +فتحنا +فتحها +فتحهم +فتحولت +فتحولوا +فتحي +فتحيا +فتحية +فتخبرنا +فتخرج +فتخصصت +فتخطئه +فتخفي +فتخمد +فتدرك +فتدفق +فتدفَّقت +فتدكها +فتدمع +فتدهورت +فتدير +فتذكر +فترات +فتراته +فتراه +فتراهم +فتربَّى +فترة +فترتب +فترتيب +فترتين +فترجع +فترجم +فترجما +فترجمت +فترجمته +فترد +فتردد +فترفع +فترفق +فترك +فتركت +فتركها +فتركوها +فتروي +فترى +فتزداد +فتسارع +فتستجيب +فتستقبلنا +فتستوعب +فتسرَّب +فتسعِّر +فتسلب +فتسلمتها +فتسمع +فتسمية +فتشاهد +فتشاورنا +فتشبه +فتشت +فتشتري +فتشحذ +فتشربها +فتشرع +فتشعر +فتشمل +فتشوا +فتشير +فتصادمت +فتصبح +فتصدره +فتصدّر +فتصعد +فتصل +فتصنف +فتصيبها +فتصير +فتضربه +فتضطرب +فتضعفهم +فتضعه +فتضيع +فتطأك +فتطبيق +فتطلب +فتظل +فتظهر +فتعاظم +فتعاقدت +فتعالوا +فتعتعوا +فتعرض +فتعرضت +فتعرف +فتعرفه +فتعرية +فتعطبه +فتعطي +فتعظيم +فتعكس +فتعلقت +فتعلم +فتعلمت +فتعلموا +فتعمق +فتعني +فتعود +فتعيش +فتفتَّق +فتفجّرت +فتفر +فتفرض +فتفرقنا +فتفسح +فتفككت +فتفوقوا +فتق +فتقاطرت +فتقاليد +فتقام +فتقدم +فتقرر +فتقف +فتقفز +فتقول +فتقوم +فتكا +فتكاثرت +فتكثر +فتكمل +فتكون +فتكونت +فتكوّن +فتلاحقها +فتلاشت +فتلتفت +فتلتهب +فتلطَّخت +فتلعب +فتلعثم +فتلقى +فتلك +فتم +فتمت +فتمجد +فتمحو +فتمد +فتمدنا +فتمرره +فتمضي +فتمطر +فتمكن +فتمكنت +فتملأ +فتمنح +فتمنع +فتمنيت +فتموت +فتميزوا +فتن +فتناقصت +فتنبت +فتنة +فتنتابه +فتنتابها +فتنتج +فتنتظر +فتنتها +فتنتهي +فتنحدر +فتنخفض +فتنظر +فتنفست +فتنقل +فتنمو +فتنوع +فتهافتت +فتهشمت +فتهمه +فتوجد +فتوجس +فتوجه +فتوجهت +فتوصلت +فتوفر +فتوفير +فتوقف +فتوقفنا +فتولدت +فتولى +فتولي +فتوى +فتى +فتيات +فتياتنا +فتياراته +فتَدفّعا +فتُظلمها +فثار +فثالات +فثلثه +فثمة +فثورة +فج +فجأة +فجأةً +فجئت +فجاء +فجاءت +فجائي +فجائية +فجاوبها +فجدوا +فجدي +فجدُّهُ +فجذبته +فجر +فجرا +فجراً +فجرت +فجرحه +فجرفتها +فجرها +فجري +فجزأته +فجعل +فجعلت +فجل +فجلبت +فجلست +فجلسنا +فجمعت +فجمّدتها +فجنوب +فجوات +فجوة +فجوسلين +فجيعة +فجيعتها +فحازت +فحالما +فحاول +فحاولت +فحتمية +فحتى +فحجبها +فحداني +فحدث +فحدثته +فحدثنا +فحدجتُ +فحدّث +فحدِّث +فحرم +فحرمان +فحزنت +فحسب +فحسين +فحص +فحصت +فحصتهم +فحصل +فحصلت +فحصه +فحصهم +فحصول +فحط +فحطمناه +فحفظ +فحفظت +فحقوق +فحقوقي +فحل +فحمدت +فحملت +فحملن +فحمي +فحوادث +فحوالي +فحوت +فحوص +فحوصات +فحوكم +فحول +فحين +فحينئذ +فحينما +فحييني +فخ +فخائر +فخاب +فخاخ +فخار +فخاريات +فخاطب +فخاف +فخامة +فخانهما +فخبر +فخذ +فخر +فخرا +فخراً +فخرج +فخرجتُ +فخري +فخرية +فخصصت +فخصصوا +فخططت +فخطفت +فخلاصة +فخلال +فخلايا +فخلع +فخلعه +فخلو +فخم +فخماً +فخمة +فخور +فخورا +فخورة +فخيم +فداء +فدائماً +فداناً +فدبروا +فدحنا +فدخل +فدخلتها +فدخلنا +فدخلوا +فدرس +فدع +فدعا +فدعانا +فدعت +فدعنا +فدعوا +فدعوته +فدفعت +فدفعه +فدقت +فدمر +فدمروا +فدنوتُ +فدور +فدوى +فذاع +فذاك +فذاكرته +فذبحه +فذة +فذكاء +فذكر +فذكرت +فذلك +فذلكة +فذهب +فذهبت +فذو +فرآه +فرأت +فرأته +فرأتها +فرأس +فرأوا +فرأى +فرأيت +فرائس +فرائسه +فرائصه +فرائه +فراج +فراحت +فرادة +فرادته +فراراً +فراز +فراس +فراسة +فراسر +فراش +فراشات +فراشة +فراشك +فراشه +فراشها +فراعنة +فراعها +فرافق +فراق +فراقا +فرانز +فرانس +فرانسوا +فرانسيز +فرانسيسكو +فرانك +فرانكشتاين +فرانكفورت +فربما +فرت +فرتر +فرج +فرجة +فرجته +فرجعت +فرجوية +فرجينيا +فرح +فرحا +فرحات +فرحان +فرحانة +فرحاً +فرحبت +فرحة +فرحت +فرحته +فرحتي +فرحلت +فرحم +فرحه +فرحها +فرحون +فرحي +فرحين +فرحًا +فرد +فرداً +فردت +فردتني +فردتي +فردريش +فردريك +فردوس +فردوسا +فردوسه +فردي +فرديا +فردية +فرديناند +فرديًا +فرديّ +فرديًّا +فردًا +فرسان +فرسانها +فرساي +فرسم +فرش +فرشاتي +فرص +فرصا +فرصاً +فرصة +فرصةً +فرصتهم +فرصتي +فرض +فرضا +فرضت +فرضتها +فرضه +فرضها +فرضوا +فرضوي +فرضي +فرضية +فرضًا +فرط +فرع +فرعا +فرعان +فرعاً +فرعون +فرعونية +فرعية +فرفض +فرفضا +فرفضتها +فرفع +فرفعوه +فرق +فرقا +فرقائق +فرقاً +فرقة +فرقته +فرقتها +فرقه +فرقها +فركبوه +فركت +فركضوا +فرم +فرمال +فرملة +فرمه +فرن +فرنجي +فرنجية +فرنسا +فرنسوا +فرنسي +فرنسيات +فرنسية +فرنسيون +فرنك +فرنكاً +فرهود +فروجهن +فروجيه +فروخ +فروض +فروع +فروعا +فروعًا +فروق +فروقا +فروقاً +فروقًا +فرومانتان +فرومنتان +فرويد +فروين +فري +فريحة +فريد +فريدا +فريداً +فريدة +فريدةً +فريدريك +فريدريكو +فريديريك +فرير +فريسة +فريسته +فريضة +فريق +فريقا +فريقه +فريقين +فرِد +فرّت +فرّق +فرّكت +فزاحمها +فزادت +فزادهم +فزار +فزارها +فزان +فزت +فزجاجة +فزرت +فزع +فزعا +فزعاً +فزعت +فزعزع +فزعين +فزفرت +فزوجه +فزيادة +فسأحتاج +فسأرسل +فسأروى +فسأقيم +فسأل +فسألت +فسألته +فسألتها +فسألناه +فسأله +فسؤال +فساحة +فساد +فسادا +فساداً +فسادوا +فسار +فسارعوا +فساعدت +فسافر +فسافرت +فساهم +فسبقنا +فستان +فستاني +فستجد +فسحب +فسحة +فسحتها +فسحقته +فسدت +فسر +فسرت +فسرعة +فسرنا +فسروا +فسطاط +فسطاطك +فسطاطه +فسعى +فسقط +فسقطت +فسكان +فسكت +فسكن +فسلام +فسماء +فسمح +فسمحت +فسمع +فسمعنا +فسمى +فسنختفي +فسنسعى +فسنظل +فسنكون +فسهول +فسوء +فسوف +فسيارات +فسيجد +فسيح +فسيحة +فسيكون +فسيمنعه +فسيولوجية +فسّاطم +فشاهد +فشبر +فشجعان +فشجعه +فشجعوا +فشدا +فشدّ +فشرح +فشركات +فشعرت +فشعره +فشقوا +فشكا +فشكلها +فشكلوا +فشل +فشلا +فشلاً +فشلت +فشلنا +فشله +فشلها +فشلوا +فشمروا +فشمل +فشهد +فشهدت +فشهدنا +فشواذ +فشوارعها +فشيئا +فشيئاً +فشيئًا +فشيدت +فص +فصائل +فصائلها +فصاح +فصار +فصارت +فصانعو +فصبها +فصح +فصحتها +فصحيح +فصدرت +فصدقناكِ +فصرت +فصرخ +فصفعني +فصل +فصلا +فصلاً +فصلت +فصلك +فصلن +فصلناها +فصله +فصلهم +فصلهما +فصلي +فصلية +فصلين +فصنع +فصوت +فصوص +فصول +فصولا +فصولاً +فصوله +فصولها +فصيح +فصيحا +فصيص +فصيل +فصيلة +فض +فضاء +فضاءنا +فضاءها +فضاءً +فضائح +فضائل +فضائلها +فضائه +فضائي +فضائيا +فضائياً +فضائية +فضاعت +فضاقت +فضة +فضح +فضحته +فضحك +فضحكنا +فضحكوا +فضحّوا +فضخوا +فضرب +فضربوا +فضعف +فضفاضا +فضفاضة +فضل +فضلا +فضلاء +فضلاتها +فضلال +فضلان +فضلاً +فضلت +فضلك +فضلكم +فضله +فضلها +فضلوا +فضم +فضول +فضية +فضيحة +فضيلة +فضّل +فضَّة +فطار +فطر +فطرأت +فطرتي +فطرح +فطرد +فطرق +فطري +فطريا +فطريات +فطرية +فطريًّا +فطلب +فطلبت +فطمأن +فطمأنه +فطنا +فطوبى +فطوري +فطين +فظا +فظاعة +فظة +فظلت +فظللت +فظن +فظهر +فظهرت +فظيع +فظيعة +فعائشة +فعاد +فعادة +فعادت +فعاقبهُ +فعال +فعالا +فعالة +فعالم +فعاليات +فعالياته +فعالياتها +فعالية +فعاليته +فعاليتها +فعبر +فعثر +فعدد +فعددهم +فعديد +فعرضت +فعرفت +فعزمت +فعسى +فعشت +فعشقت +فعصر +فعقد +فعقلها +فعقيدتها +فعكفوا +فعل +فعلا +فعلاً +فعلة +فعلت +فعلته +فعلتها +فعلتُ +فعلقت +فعلقته +فعلماء +فعلمت +فعلنا +فعله +فعلها +فعلوا +فعلى +فعلي +فعليا +فعلياً +فعلية +فعليك +فعلينا +فعليه +فعليها +فعليهم +فعليًا +فعلّم +فعمان +فعمد +فعمدت +فعمل +فعملت +فعملية +فعن +فعند +فعندما +فعهد +فعوض +فعوضا +فعّالاً +فعّالة +فعَّال +فـ +فـرص +فـــاروق +فــلا +فـها +فـول +فـي +ففازت +ففتح +ففتحت +ففجّر +ففرحت +ففرض +ففريق +ففزع +ففصل +ففضل +ففعل +ففقدان +ففكرة +ففلسفة +ففوجئ +ففوجئت +ففى +ففي +ففيلم +ففيه +ففيها +ففيهما +فقادني +فقارية +فقاطعه +فقاعات +فقال +فقالا +فقالت +فقالوا +فقام +فقامت +فقاموا +فقبره +فقبل +فقبلتها +فقبله +فقتل +فقتلت +فقد +فقدا +فقدان +فقدانه +فقدانها +فقدت +فقدته +فقدتُ +فقدم +فقدمت +فقدمني +فقدنا +فقده +فقدها +فقدوا +فقديما +فقدَ +فقر +فقرأ +فقرأت +فقرا +فقراء +فقراءة +فقرائه +فقرائهم +فقرات +فقراً +فقرة +فقرتين +فقرر +فقررا +فقررت +فقرروا +فقرها +فقري +فقرًا +فقرَّ +فقص +فقصر +فقضى +فقضيت +فقط +فقطاري +فقطب +فقطع +فقطعت +فقفز +فقل +فقلة +فقلت +فقلتها +فقلتُ +فقلما +فقمات +فقمة +فقمت +فقه +فقها +فقهاء +فقهياً +فقهية +فقوى +فقير +فقيرا +فقيراً +فقيرة +فقيرًا +فقيل +فقيه +فقيها +فقيِّده +فقَدَ +فك +فكأنك +فكأنما +فكأنها +فكاد +فكان +فكانت +فكانوا +فكاهات +فكتاب +فكتب +فكتبا +فكتبت +فكتبوا +فكتور +فكثرة +فكثيرا +فكثيراً +فكثيرة +فكر +فكرا +فكراً +فكرة +فكرت +فكرتان +فكرته +فكرتها +فكرتي +فكررت +فكرـ +فكرك +فكرمه +فكرنا +فكره +فكروا +فكرى +فكري +فكريا +فكرياً +فكرية +فكريين +فكريّة +فكشفت +فكل +فكلاهما +فكلما +فكلمة +فكلها +فكلي +فكم +فكما +فكنا +فكنت +فكهة +فكوا +فكون +فكوني +فكوّن +فكوّنت +فكيف +فكيفما +فكيك +فكّ +فكّر +فكَّر +فكَّرت +فل +فلأتوقف +فلأجل +فلإدراك +فلا +فلابد +فلابدّ +فلاتزال +فلاح +فلاحظ +فلاحظت +فلاحين +فلادلفيا +فلاديمير +فلار +فلاسفة +فلان +فلايجدون +فلاّح +فلبى +فلتة +فلتت +فلتسجيل +فلتكن +فلتكونوا +فلتمييز +فلتنته +فلجأ +فلحقه +فلحّن +فلدى +فلدي +فلدينا +فلديه +فلربما +فلربّما +فلس +فلساً +فلست +فلسطين +فلسطيني +فلسطينيا +فلسطينية +فلسطينيو +فلسطينيي +فلسطينيين +فلسفة +فلسفته +فلسفي +فلسفية +فلسفيًّا +فلسوف +فلطالما +فلعل +فلعلها +فلعلي +فلـقد +فلفت +فلفظت +فلفل +فلفلة +فلقد +فلقيهما +فلك +فلكل +فلكلوري +فلكلورية +فلكم +فلكها +فلكي +فلكية +فلل +فللعراق +فللمثقفين +فلله +فلليابسة +فلم +فلما +فلماذا +فلمبان +فلمح +فلمحاولة +فلمست +فلمَ +فلن +فلنا +فلنتأمل +فلنترك +فلنحيينه +فلندز +فلنسافر +فلنفعل +فلنقل +فله +فلها +فلو +فلوات +فلواتي +فلوبير +فلوحات +فلوحة +فلورايدا +فلورنسا +فلوروميبندازول +فلوريان +فلوريدا +فلوسه +فلولا +فلون +فلويد +فلي +فليأكل +فليبصق +فليبيا +فليتفضل +فليتنا +فليحمد +فليس +فليسامح +فليست +فليستجيبوا +فليستعذ +فليصل +فليعد +فليفل +فليقم +فلِم +فم +فما +فماتت +فماذا +فمال +فمباشر +فمتوسط +فمثل +فمثلا +فمثلاً +فمجافون +فمحمد +فمزج +فمسألة +فمسحوق +فمصادرها +فمصدر +فمضى +فمضينا +فمع +فمعظم +فمعنى +فمفاصل +فمفهوم +فمقابلة +فمقارنةً +فمك +فمكث +فمكنني +فملأ +فملاذهم +فملوكها +فمما +فمن +فمناظرها +فمنحه +فمنحها +فمنذ +فمنطقة +فمنظمة +فمنعني +فمنه +فمنها +فمنهم +فمه +فمها +فمهجتي +فمهما +فمهنة +فموضوع +فموية +فمي +فن +فنأخذ +فنا +فناء +فنادت +فنادق +فنادقها +فنادى +فنار +فناسج +فناشدته +فنال +فنان +فنانا +فناناً +فنانة +فنانو +فنانون +فنانوها +فناني +فنانين +فنانيه +فنبتت +فنتائجها +فنتزاحم +فنتفق +فنتمنى +فنتناول +فنتيجة +فنجان +فنجانا +فنجانه +فنجح +فنجحت +فنجد +فنحن +فندرت +فندق +فندقاً +فندقه +فندقي +فندقية +فنراه +فنزح +فنزعنا +فنسبة +فنسبية +فنسجوا +فنسخ +فنسميها +فنشأ +فنشأت +فنشر +فنصب +فنصحوه +فنصل +فنضب +فنظر +فنظرإليه +فنظرت +فنعود +فنعْم +فنقبل +فنقل +فنقول +فنكرر +فنكون +فنلقي +فنلندا +فنما +فنمت +فنموت +فنه +فنها +فنهضنـا +فنهم +فنوبات +فنون +فنوننا +فنونها +فنى +فني +فنيا +فنياً +فنية +فنيين +فنيًا +فنَّدت +فه +فهؤلاء +فها +فهاجم +فهارس +فهارسك +فهالني +فهاهو +فهاهي +فهب +فهبط +فهبّ +فهد +فهذا +فهذه +فهر +فهراً +فهرب +فهربت +فهرتزل +فهرس +فهرسا +فهرسته +فهرسوا +فهرسًا +فهرع +فهزت +فهضم +فهطلت +فهكذا +فهل +فهلا +فهلوية +فهم +فهما +فهماً +فهمت +فهمتها +فهمك +فهمنا +فهمه +فهمها +فهمي +فهمًا +فهن +فهنا +فهناك +فهنيئاً +فهو +فهوفمان +فهى +فهي +فهيا +فو +فوائد +فوائده +فوائض +فوات +فواجع +فواجه +فواحة +فواخير +فواز +فواعل +فوافق +فوافقت +فوافقها +فوافقهم +فواقع +فوالله +فوج +فوجئ +فوجئا +فوجئت +فوجئنا +فوجئوا +فوجا +فوجد +فوجدت +فوجدته +فوجدتها +فوجدتُ +فوجدنا +فوجدناه +فوجده +فوجدها +فوجدوا +فوجدوه +فوجدوها +فوجنا +فودع +فودعت +فور +فورا +فوراً +فوربان +فوربز +فورة +فورت +فورد +فورم +فوره +فوري +فوريا +فورية +فورًا +فوز +فوزك +فوزه +فوزي +فوزية +فوسائل +فوسفات +فوسفورية +فوسيفير +فوشان +فوضاه +فوضع +فوضعنا +فوضعوا +فوضوي +فوضى +فوعدته +فوعدني +فوفاة +فوفر +فوفّرت +فوق +فوقته +فوقعت +فوقف +فوقفوا +فوقه +فوقها +فوقي +فوقَّعت +فوكو +فوكوه +فوكوياما +فول +فولاذ +فولاذي +فولبي +فولتير +فولع +فولكر +فولكلوريا +فولكلورية +فوهات +فويرزا +فويل +فوينيكس +فوّتت +فوّهة +فوَّهاته +فى +في +فيأتنس +فيأتي +فيأخذ +فيؤدي +فيا +فياض +فيبتسم +فيبتلعوها +فيبتهج +فيبحث +فيبدأ +فيبدو +فيبدي +فيبروفيبر +فيبقى +فيبكي +فيبيعونه +فيت +فيتأهب +فيتالي +فيتامين +فيتامينات +فيتاميناتكم +فيتبعه +فيتحرر +فيتحرش +فيتحرك +فيتحقق +فيتخذها +فيتراكم +فيترجم +فيترك +فيتز +فيتساءلون +فيتساقط +فيتسرب +فيتسرع +فيتشيعون +فيتعامل +فيتعذّر +فيتعلق +فيتعلم +فيتعلموا +فيتم +فيتمثل +فيتمخض +فيتمكن +فيتنام +فيتناول +فيتو +فيتوالد +فيتوقع +فيتوقف +فيتولى +فيثير +فيجب +فيجد +فيجدوا +فيجرى +فيجفل +فيجلس +فيجيب +فيحافظ +فيحاول +فيحاولون +فيحب +فيحبس +فيحتاج +فيحترم +فيحتفل +فيحدث +فيحدثنا +فيحرم +فيحصل +فيحفرون +فيحفظها +فيحكي +فيحول +فيحييها +فيختفي +فيخرج +فيخصص +فيخضع +فيخطئه +فيخطر +فيخفف +فيدخل +فيدر +فيدركرز +فيدعو +فيدفع +فيدل +فيدمر +فيدور +فيدوسييف +فيديو +فيذكر +فيذكرنا +فيرا +فيرارا +فيراه +فيراها +فيربانكس +فيرتج +فيرتجف +فيرجع +فيرجين +فيردد +فيردم +فيردونها +فيرز +فيرسم +فيرفض +فيرقي +فيركز +فيركور +فيرمون +فيرموناتها +فيرن +فيرنيه +فيروح +فيروز +فيروس +فيروسا +فيروسات +فيروسي +فيروسية +فيروفياس +فيرون +فيروي +فيرى +فيزا +فيزحف +فيزداد +فيزياء +فيزيائيا +فيزيائيًا +فيزيد +فيزيقية +فيزيولوجي +فيزيولوجية +فيستبد +فيستجيب +فيستخدم +فيستدير +فيستسلمون +فيستكين +فيستلزم +فيستمر +فيستوطن +فيسد +فيسرد +فيسرع +فيسعى +فيسقط +فيسقيني +فيسكنون +فيسهل +فيش +فيشترى +فيشد +فيشرحه +فيشعر +فيشكو +فيشوهه +فيشير +فيصبح +فيصحبني +فيصدق +فيصفها +فيصل +فيصلي +فيصوره +فيصيبه +فيصير +فيض +فيضان +فيضانه +فيضحي +فيضطر +فيضطرب +فيضع +فيضل +فيضيع +فيضيف +فيطالب +فيطرح +فيطرحه +فيطمئن +فيظلوا +فيعالج +فيعبر +فيعتلي +فيعتمد +فيعجز +فيعرج +فيعرضهن +فيعرفون +فيعزز +فيعفى +فيعلق +فيعلم +فيعمل +فيعود +فيعودون +فيعيد +فيعيشون +فيفاجأوا +فيفاكس +فيفر +فيفشل +فيفضل +فيفعل +فيفقد +فيفهمه +فيفيان +فيفيض +فيقبض +فيقبل +فيقترح +فيقدم +فيقدمون +فيقرؤون +فيقصم +فيقع +فيقف +فيقلل +فيقمعونه +فيقول +فيقوم +فيقيم +فيك +فيكاد +فيكتب +فيكتسب +فيكتسح +فيكتفي +فيكتور +فيكتوريا +فيكسره +فيكمن +فيكون +فيكونت +فيكوّن +فيكي +فيكيدون +فيكِ +فيل +فيلا +فيلبسونها +فيلبيرت +فيلة +فيلتقي +فيلتهم +فيلد +فيلدونج +فيلسوف +فيلسوفا +فيلسوفاً +فيلسوفهم +فيلفت +فيلق +فيلقى +فيلقي +فيلكا +فيلم +فيلما +فيلماً +فيلمه +فيلمها +فيلمي +فيلمًا +فيلوث +فيلونج +فيليب +فيليه +فيم +فيما +فيماتصل +فيمان +فيمتد +فيمتزج +فيمتص +فيمتليء +فيمضي +فيمكثُ +فيمكن +فيمكننا +فيملأن +فيملؤها +فيمن +فيمنع +فيموت +فيموتون +فيميزها +فينا +فينادي +فينايل +فينتابهم +فينتج +فينتشر +فينتظر +فينتقل +فينخفض +فيندفع +فينزل +فينساقون +فينسيا +فينشط +فينطلق +فينطوي +فينعكس +فينقسم +فينوس +فيني +فينيسيا +فينيقيا +فينيقية +فيه +فيها +فيهاجمها +فيهبّ +فيهرب +فيهـــا +فيهلك +فيهلكها +فيهم +فيهما +فيورد +فيوسف +فيونتس +فيّ +فَاسْتَجَابَ +فَالَّذِينَ +فَتَخْطَفُه +فَتِيَّةً +فَصَلتْ +فَقَبِلته +فَقْد +فَكّرَ +فَمِنْهُم +فَهْم +فَيَذّهَبُ +فُرض +فُسحٌ +فُصل +فُصلتْ +فُطر +فُطرت +فُهمت +فِي +ق +قائد +قائدا +قائدات +قائدة +قائدها +قائدًا +قائظة +قائل +قائلا +قائلاً +قائلة +قائلها +قائم +قائما +قائماً +قائمة +قائمًا +قابضة +قابضين +قابع +قابعا +قابعة +قابل +قابلا +قابلاً +قابلة +قابلت +قابلتان +قابلتنا +قابلته +قابلتها +قابلناهم +قابله +قابلها +قابلهم +قابلية +قابليتها +قابوس +قابيل +قات +قاتل +قاتلا +قاتلة +قاتلوا +قاتم +قاتما +قاتمة +قاحل +قاحلة +قاد +قادة +قادت +قادتني +قادته +قادتها +قادحة +قادر +قادرا +قادران +قادراً +قادرة +قادرون +قادرين +قادرًا +قادم +قادما +قادماً +قادمة +قادمون +قادمين +قادنا +قادني +قاده +قادها +قار +قارئ +قارئا +قارئاً +قارئة +قارئنا +قارئه +قارئها +قارئي +قارات +قارب +قاربت +قاربها +قاربوا +قاربًا +قارة +قارته +قارتهم +قارتين +قارس +قارساً +قارعا +قارعةِ +قارن +قارنا +قارنت +قاري +قاريء +قازان +قاس +قاسم +قاسماً +قاسى +قاسيا +قاسياً +قاسية +قاسيون +قاصاً +قاصدا +قاصدة +قاصدين +قاصدًا +قاصر +قاصرا +قاصرات +قاصراً +قاصرة +قاضي +قاضيا +قاضيات +قاضياً +قاضية +قاضيًا +قاطبة +قاطع +قاطعا +قاطعات +قاطعة +قاطعت +قاطعتها +قاطعه +قاطني +قاطنيه +قاطنيها +قاع +قاعات +قاعاته +قاعة +قاعتها +قاعدا +قاعدة +قاعه +قاعها +قافكو +قافلة +قافلتي +قال +قالا +قالب +قالت +قالته +قالتها +قاله +قالها +قالوا +قالوها +قام +قاما +قامة +قامت +قامتها +قامتي +قاموا +قاموس +قاموسها +قاموسي +قاموسًا +قانون +قانونا +قانوناً +قانونى +قانوني +قانونيا +قانونية +قانونيًا +قانية +قاهر +قاهرة +قاوم +قاوما +قاومت +قاومه +قايتباي +قباء +قبائل +قبائلها +قباب +قبالة +قبالتنا +قبالته +قباني +قبباً +قبة +قبحا +قبر +قبراً +قبرص +قبره +قبسًا +قبض +قبضا +قبضة +قبضت +قبضته +قبضتها +قبضوا +قبعة +قبقاب +قبل +قبلا +قبلات +قبلاته +قبلاً +قبلة +قبلت +قبلته +قبلكم +قبلني +قبله +قبلها +قبلهم +قبلهما +قبلي +قبلية +قبلُ +قبواً +قبور +قبول +قبولا +قبولاً +قبوله +قبولها +قبولهم +قبيحاً +قبيحة +قبيس +قبيل +قبيلة +قبيلتك +قبيلته +قبيلتها +قبيلتي +قبيلتين +قبّاني +قبّلت +قبّلته +قتادة +قتال +قتالا +قتامتها +قتل +قتلا +قتلانا +قتلاه +قتلت +قتلته +قتلتْه +قتلنا +قتله +قتلهم +قتيبة +قتيبية +قتيلا +قح +قحط +قد +قداسة +قدامى +قدر +قدرا +قدرات +قدراتك +قدراتنا +قدراته +قدراتها +قدراتهم +قدراتهما +قدراتي +قدراه +قدراً +قدرة +قدرت +قدرتكم +قدرتنا +قدرته +قدرتها +قدرتهم +قدرنا +قدره +قدرها +قدرهم +قدرون +قدري +قدريا +قدريًا +قدرًا +قدس +قدسية +قدسيته +قدم +قدما +قدماء +قدماك +قدمان +قدماني +قدماه +قدماها +قدماي +قدماً +قدمت +قدمتم +قدمته +قدمتها +قدمنا +قدمه +قدمها +قدموا +قدموس +قدمي +قدميك +قدمين +قدميه +قدميها +قدميّ +قدمٌ +قدوة +قدور +قدورة +قدوم +قدوماً +قدومه +قدومها +قدومهم +قدير +قديسة +قديش +قديم +قديما +قديماً +قديمة +قديمه +قديمها +قديمًا +قدّر +قدّرت +قدّم +قدّمت +قدّمتها +قدّمناه +قدّمها +قدّيساً +قدَّم +قدَّمها +قذرة +قذف +قذفت +قذفتنا +قذفتهما +قذفها +قذفوا +قرآن +قرآنا +قرآني +قرآنية +قرأ +قرأت +قرأتم +قرأته +قرأتها +قرأتُ +قرأنا +قرأناها +قرأه +قرأها +قرأوا +قرا +قراء +قراءات +قراءاته +قراءاتهم +قراءاتي +قراءة +قراءةالعالم +قراءةٍ +قراءتك +قراءته +قراءتها +قراءتي +قرائن +قرائه +قرائها +قرابة +قرابين +قرابيني +قرار +قرارا +قرارات +قراراته +قراراتهم +قراراً +قرارة +قرارته +قرارك +قراره +قرارها +قراري +قرارًا +قراصنة +قراض +قراميدان +قران +قرانات +قرانه +قرانهما +قراني +قراهم +قرب +قربانا +قرباً +قربة +قربت +قربته +قربه +قربها +قرة +قرحات +قرد +قردا +قردوح +قرر +قررا +قررت +قررتها +قررها +قرروا +قرش +قرشا +قرشت +قرشًا +قرص +قرصان +قرصي +قرض +قرضت +قرطاج +قرطاس +قرطبة +قرع +قرعة +قرعته +قرن +قرنا +قرناً +قرنق +قرنه +قرني +قرنية +قرنين +قرنيين +قرنًا +قره +قرود +قروش +قروض +قروضاً +قرون +قرونا +قرونه +قروياً +قروية +قرى +قريات +قريب +قريبا +قريبات +قريبان +قريباً +قريبة +قريبته +قريبي +قريبًا +قرية +قريتنا +قريته +قريتها +قريتي +قريحة +قريش +قريع +قرين +قرينه +قرّاء +قرّائه +قرّر +قرَّر +قزح +قزحية +قزق +قزم +قزمه +قسائم +قساوة +قساوسة +قست +قسر +قسرا +قسط +قسطا +قسطنطين +قسم +قسما +قسمان +قسماً +قسمناه +قسمها +قسموا +قسموها +قسمين +قسمًا +قسوة +قسوتها +قسيس +قسيسا +قسيمة +قش +قشتالة +قشر +قشرة +قشرتها +قشريات +قشعريرة +قشور +قشورها +قشيبة +قص +قصائد +قصائدنا +قصائده +قصائدهِ +قصائدي +قصارى +قصاقيص +قصب +قصبة +قصة +قصتان +قصته +قصتها +قصتهم +قصتين +قصد +قصدت +قصدته +قصدتُ +قصدناه +قصدوا +قصدير +قصديريا +قصر +قصرا +قصرت +قصرنا +قصره +قصرها +قصرهما +قصروا +قصص +قصصا +قصصاً +قصصه +قصصها +قصصي +قصصياً +قصصية +قصصًا +قصعة +قصف +قصفها +قصمت +قصور +قصورا +قصوراً +قصورهم +قصوى +قصي +قصياً +قصيدة +قصيدته +قصيدتهم +قصيدتي +قصيده +قصير +قصيرا +قصيرة +قصيّة +قصّة +قض +قضاء +قضاؤه +قضائه +قضائها +قضائي +قضائية +قضاه +قضاها +قضاهما +قضايا +قضايانا +قضاياهم +قضبان +قضت +قضم +قضوا +قضى +قضيب +قضية +قضيت +قضيتك +قضيتنا +قضيته +قضيتها +قضيتين +قضينا +قضيناها +قضيّة +قط +قطار +قطارات +قطاران +قطاع +قطاعا +قطاعات +قطاعاتها +قطاعها +قطاعي +قطاف +قطب +قطبان +قطبي +قطبية +قطة +قطر +قطرات +قطران +قطرة +قطرتين +قطره +قطرها +قطط +قططها +قطع +قطعا +قطعان +قطعانا +قطعاً +قطعة +قطعةً +قطعت +قطعتان +قطعتها +قطعتين +قطعنا +قطعه +قطعها +قطعوها +قطعياً +قطعية +قطف +قطفا +قطفتها +قطفه +قطنا +قطنوا +قطني +قطه +قطوف +قطيع +قطيعا +قطيعاً +قطيعة +قطيعها +قطَّعوا +قعر +قعقعة +قـول +قف +قفاها +قفر +قفز +قفزات +قفزاته +قفزة +قفزت +قفص +قل +قلائل +قلادات +قلادة +قلاع +قلاقل +قلب +قلبا +قلباَ +قلبت +قلبك +قلبكم +قلبنا +قلبه +قلبها +قلبي +قلبية +قلة +قلت +قلتم +قلته +قلتها +قلتَ +قلتُ +قلتِ +قلدت +قلده +قلدوا +قلص +قلصت +قلع +قلعة +قلعتا +قلعتان +قلعها +قلق +قلقا +قلقاً +قلقة +قلقت +قلقه +قلقها +قلقون +قلقي +قلقين +قلقًا +قلل +قللت +قلم +قلما +قلماً +قلمه +قلمها +قلمي +قلنا +قلوب +قلوبكم +قلوبنا +قلوبها +قلوبهم +قليل +قليلا +قليلاً +قليلة +قليلي +قلّ +قلّة +قلّما +قلَّ +قم +قماش +قماشة +قماشيا +قمامة +قمة +قمت +قمتم +قمته +قمتها +قمتى +قمتين +قمتُ +قمح +قمر +قمرا +قمراً +قمرية +قمرين +قمصان +قمع +قمعين +قمل +قمم +قممها +قمنا +قمو +قميرى +قميص +قميصا +قميصه +قميصها +قمّة +قمَّة +قنابل +قناة +قناته +قناتها +قناديل +قناصو +قناطير +قناطيراً +قناع +قناعا +قناعات +قناعاته +قناعاتهم +قناعاً +قناعة +قناعتي +قناعي +قناعًا +قنافذ +قنبلة +قنبلتان +قنبلته +قندهار +قنديل +قنزعتان +قنصلي +قنصليات +قنصوة +قنطارا +قنطرة +قنعت +قنفذا +قنوات +قنواتها +قنينة +قنينته +قنينتهم +قهر +قهرت +قهقهاته +قهقهوا +قهوة +قوائم +قوائمه +قوات +قوارب +قوارض +قوارير +قواسم +قواصفها +قواطع +قواعد +قوافل +قوافلها +قوافلهم +قوافيها +قواقع +قوالب +قوام +قواما +قوامته +قوامه +قوامها +قوامي +قواميس +قوانين +قوانينها +قواه +قواها +قوبل +قوبلت +قوة +قوتان +قوتك +قوتكم +قوتنا +قوته +قوتها +قوتي +قورن +قورنت +قوروش +قوس +قوسي +قوسين +قوطان +قوقعة +قوقعتها +قول +قولاً +قولبة +قولة +قولك +قوله +قولهم +قولوا +قولي +قوليها +قوم +قومه +قومها +قوموا +قومي +قوميا +قومياً +قومية +قوميتين +قومٌ +قومِهِ +قونيا +قوى +قوي +قويا +قوياً +قوية +قويةً +قويتين +قويم +قويًا +قويّ +قويّة +قويًّا +قوّة +قي +قيء +قيادات +قياداته +قيادة +قيادته +قيادتها +قيادتي +قيادية +قياس +قياسا +قياسات +قياساتها +قياساً +قياسه +قياسها +قياسي +قياسياً +قياسية +قياصرة +قيام +قياماً +قيامك +قيامه +قيامها +قيامهم +قيامهن +قيثارة +قيثاري +قيحية +قيد +قيدناه +قيدني +قيده +قيدها +قير +قيس +قيسارية +قيست +قيصر +قيصري +قيضها +قيظ +قيعان +قيل +قيلة +قيلنش +قيم +قيما +قيمة +قيمتك +قيمته +قيمتها +قيمتهما +قيمتي +قيمنا +قيمه +قيمهم +قيمية +قيود +قيوداً +قيوده +قيودها +قيوم +قيّمة +قَدَرًا +قَدَرْنا +قَضَى +قَلَبة +قَلْت +قُبلها +قُبِلوا +قُتل +قُدر +قُدِّرت +قُرنوا +قُصد +قُلْ +قُيِّض +قِبل +قِبَل +ك +كآباء +كآبة +كآبته +كآلاف +كأحد +كأحدهم +كأحطاب +كأداء +كأداة +كأدبه +كأديب +كأراض +كأس +كأساس +كأساً +كأسباب +كأستاذ +كأستاذة +كأسرة +كأسنان +كأسين +كأشرطة +كأشكال +كأشهر +كأعضاء +كأفراد +كأفضل +كأكل +كأم +كأمانة +كأمة +كأمثلة +كأمل +كأن +كأنثى +كأنسي +كأنف +كأنك +كأنما +كأننا +كأنني +كأنه +كأنها +كأنهم +كأنهما +كأني +كأهل +كأوزة +كأول +كأولويات +كأي +كأيام +كأينشتاين +كؤوس +كإجراء +كإسفنجة +كإطار +كإقامة +كإمام +كإنسان +كإنسانة +كإنقاص +كإيجار +كئوسهم +كئيب +كئيبا +كئيبة +كا +كائد +كائن +كائنا +كائنات +كائناً +كائنه +كائنين +كابتن +كابريرا +كابل +كابوس +كابوسا +كابوساً +كابول +كابيتان +كابيه +كات +كاتب +كاتبا +كاتبات +كاتبان +كاتباً +كاتبة +كاتبنا +كاتبه +كاتبها +كاتبوها +كاتدرائية +كاترين +كاتسورة +كاتكوف +كاتو +كاثوليكي +كاثوليكية +كاحتمال +كاحتياطي +كاحل +كاد +كادت +كادوا +كاديلاك +كاذب +كاذبا +كاذبات +كاذبة +كاراتشي +كاراتيه +كارامازوف +كارتر +كارثة +كارثية +كارثيًا +كاردوسو +كاردينالي +كارسة +كارستان +كارسن +كارفاليو +كارل +كارلا +كارلسروه +كارلهاينز +كارلوس +كارليل +كارم +كارنافون +كارها +كارهي +كاروتين +كارولاينا +كارولو +كارولينا +كارولينسكا +كاريزما +كاريكاتورية +كاريكاتير +كاريكاتيريا +كارين +كارينا +كازا +كازابلانكا +كازاكوف +كازاماذا +كازانـتزاكس +كازينو +كاسبر +كاستثمار +كاستجابة +كاستخدامها +كاسترو +كاسح +كاسر +كاسف +كاسكاد +كاسكل +كاسيات +كاسيت +كاشفة +كاشفًا +كاظم +كاف +كافأت +كافأته +كافافي +كافة +كافر +كافنديش +كافور +كافي +كافيا +كافياً +كافية +كافٍ +كاقتصادنا +كالآتي +كالآلية +كالأراضي +كالأرض +كالأسرة +كالأطفال +كالأعوام +كالأفعى +كالأمد +كالأوردو +كالإبل +كالاتحاد +كالاجتماع +كالاستشارة +كالاشتراكية +كالاضطهاد +كالانتماء +كالبارود +كالبترول +كالبر +كالبرامج +كالبربر +كالبرعمة +كالبطن +كالبنك +كالبنيان +كالبياتي +كالبيوت +كالتالي +كالتبشير +كالتخطيط +كالتدريبات +كالتعاون +كالتقدم +كالتكنولوجيا +كالتلوث +كالتمثال +كالتهاب +كالتي +كالتيوبا +كالثلج +كالجبل +كالجثث +كالجراحة +كالجرح +كالجمر +كالجنس +كالجواهر +كالح +كالحة +كالحديد +كالحرية +كالحضارة +كالحليب +كالحمامة +كالحيوانات +كالخروج +كالخس +كالخوف +كالخيامية +كالدار +كالدم +كالدورة +كالدولار +كالذكاء +كالذهب +كالذي +كالرؤى +كالرئيس +كالراهب +كالرجل +كالرشوة +كالرياض +كالرياضيات +كالريح +كالزبرجد +كالزرافة +كالزمن +كالزهري +كالساقية +كالسامر +كالسحر +كالسرطان +كالسلسلة +كالسماء +كالسهم +كالسوائل +كالسيارة +كالسيل +كالسيمفونية +كالسيوم +كالشجرة +كالشعر +كالشمس +كالشيخ +كالصيد +كالضخامة +كالطائفية +كالطب +كالطرق +كالطلاق +كالعادة +كالعاشق +كالعرب +كالعرقسوس +كالعسكري +كالعصفور +كالعطارة +كالعقلانية +كالعنصرية +كالعود +كالعيس +كالعِلم +كالفارسية +كالفتح +كالفرنسية +كالفلسفة +كالفن +كالفنادق +كالقادرية +كالقباب +كالقص +كالقناع +كالقنبلة +كالكتاب +كالكلابِ +كالكمبيوتر +كالكوتا +كاللذة +كالماء +كالمارد +كالمتاحف +كالمجنونة +كالمختبر +كالمختبرات +كالمدارس +كالمدرسة +كالمدفع +كالمدنية +كالمرايا +كالمرقوم +كالمستجير +كالمسجد +كالمشي +كالمصابين +كالمطارق +كالمعتاد +كالمعلبات +كالمعلمة +كالمقصات +كالملح +كالملفات +كالمنومة +كالمواطنة +كالموت +كالميثانول +كالميراث +كالنار +كالنازية +كالنباتات +كالنبع +كالنحاس +كالنخلة +كالند +كالنشر +كالنظر +كالنفط +كالنكتة +كالهضاب +كالوجودية +كالوحش +كالوديان +كالوري +كالولايات +كالي +كاليفورنيا +كاليكولو +كاليوم +كامب +كامبردج +كامتداد +كامرأة +كامل +كاملا +كاملاً +كاملة +كاملةً +كاملتين +كاملين +كامن +كامنا +كامناً +كامنة +كامنًا +كامو +كاميرا +كاميراتهم +كاميرته +كاميليا +كان +كانا +كانت +كانتا +كانتفاخ +كانتون +كانجارو +كانخفاض +كاندي +كانسلاخ +كانط +كانوا +كانون +كانْ +كاهل +كاهلها +كاهن +كاهوتا +كاونتر +كب +كبار +كبارا +كباراً +كباريس +كباريه +كباقي +كبت +كبح +كبحث +كبحّار +كبد +كبدت +كبدها +كبدي +كبديل +كبر +كبراهن +كبراهنّ +كبرت +كبرتم +كبرتُ +كبروا +كبرى +كبريات +كبرياتها +كبريانو +كبريتات +كبساط +كبسه +كبسول +كبسولات +كبش +كبشر +كبطانة +كبطل +كبطن +كبعض +كبــــيرة +كبقية +كبل +كبلينج +كبناء +كبنت +كبني +كبنية +كبوتنا +كبوتها +كبير +كبيرا +كبيران +كبيراً +كبيرة +كبيرةً +كبيرتين +كبيرهم +كبيرين +كبيرًا +كبيرِ +كتائب +كتاب +كتابا +كتابات +كتاباتك +كتاباته +كتاباتهم +كتاباتي +كتابان +كتاباً +كتابة +كتابتنا +كتابته +كتابتها +كتابتي +كتابك +كتابنا +كتابه +كتابها +كتابهما +كتابي +كتابية +كتابين +كتابيه +كتابًا +كتابٌ +كتاريخ +كتاكسيات +كتايب +كتب +كتبا +كتباً +كتبة +كتبت +كتبته +كتبتها +كتبتيها +كتبتُ +كتبتُه +كتبدار +كتبـــــه +كتبنا +كتبناها +كتبنها +كتبه +كتبها +كتبهم +كتبوا +كتبي +كتبًا +كتبْتُ +كتجار +كتجربة +كتحت +كتحفة +كتخفيف +كتعبير +كتــــابة +كتف +كتفك +كتفه +كتفها +كتفي +كتفيك +كتفيه +كتفيها +كتقديم +كتل +كتلة +كتلته +كتلتها +كتلتين +كتلك +كتلميذ +كتلوين +كتم +كتمارين +كتهمة +كتيب +كتيبات +كتيبة +كتيبًا +كتّاب +كتّاباً +كثافة +كثاني +كثب +كثبان +كثر +كثرة +كثرت +كثرته +كثرتها +كثف +كثفت +كثورته +كثير +كثيرا +كثيرات +كثيراً +كثيرة +كثيرون +كثيري +كثيرين +كثيرًا +كثيرٍ +كثيف +كثيفا +كثيفة +كثُرت +كجامعة +كجبال +كجذع +كجرح +كجرعات +كجزء +كجلد +كجلمود +كجم +كجندي +كجنس +كجيمس +كحاج +كحافز +كحال +كحالة +كحبات +كحتمية +كحجر +كحد +كحدّ +كحراس +كحرف +كحركة +كحظه +كحفيف +كحقن +كحل +كحلاً +كحلقة +كحليا +كحمض +كحمّال +كحولية +كحياته +كخامات +كخبرة +كخبير +كخزينة +كخسارة +كخط +كخطأ +كخطوة +كخطوط +كخلية +كخليفة +كخياط +كخيول +كدت +كدتُ +كدح +كدراسات +كدسة +كدقات +كدليل +كدموع +كدمية +كدولة +كدي +كدين +كديوان +كدّ +كدّويّ +كذا +كذب +كذبة +كذبوا +كذلك +كر +كرأس +كرئيس +كرائد +كرابط +كرات +كراتشكوفسكي +كراتشي +كراج +كراسات +كراسي +كراعية +كراقص +كرام +كراماته +كرامة +كرامةً +كرامته +كرامتهم +كراهية +كراوز +كراوٍ +كرايزلر +كرايسلر +كربته +كربكسيفان +كربلاء +كربوجا +كربون +كربونات +كربونية +كرة +كرتك +كرتنا +كرتون +كرتونا +كرج +كرجال +كرجالات +كرحالة +كرد +كردي +كردّة +كرر +كررت +كرز +كرس +كرست +كرسوم +كرسي +كرسيا +كرسيه +كرش +كرضوي +كركام +كركوتلي +كركوك +كرم +كرما +كرماء +كرمة +كرمت +كرمز +كرمنا +كرمها +كرموز +كرمى +كرمٌ +كره +كرهت +كرهتموهن +كرهته +كرهتُ +كرهًا +كرهٌ +كروائية +كروان +كرواية +كروحه +كروز +كروس +كروش +كرومر +كروموزوماتها +كروموسومات +كروية +كريات +كريت +كريستوس +كريستوف +كريستوفر +كريستي +كريستيان +كريستياني +كريستين +كريستينسين +كريسماس +كريكت +كريم +كريما +كريمان +كريماً +كريمة +كريمته +كريمي +كريمًا +كرين +كريهة +كريوبلان +كرّت +كرّسه +كرَّةً +كزميل +كزوجتي +كزيادة +كزينة +كسائه +كسابقتها +كسابقه +كساحات +كساد +كساه +كساوي +كسبب +كسبت +كسبرالي +كسبره +كسبه +كسر +كسراب +كسرعة +كسره +كسروا +كسروه +كسفراء +كسل +كسلا +كسلي +كسمكة +كسنابل +كسوات +كسوة +كسور +كسوف +كسوق +كسويسرا +كسياسة +كشأن +كشاب +كشارع +كشارون +كشاعر +كشاعرة +كشجرة +كشخص +كشخصية +كشر +كشرط +كشركات +كشركة +كشروحات +كشريط +كشعار +كشعب +كشف +كشفا +كشفت +كشفنا +كشفه +كشفية +كشفًا +كشموخ +كشمير +كشهرة +كشوف +كشوفات +كشوفه +كصبر +كصحفي +كصدى +كصفحة +كصلة +كصناعة +كصوت +كصورة +كضابط +كضرورة +كضيف +كطائر +كطارد +كطالب +كطرف +كطريقة +كطعام +كطفلة +كطيّار +كظاهرة +كظلك +كظله +كعادة +كعادته +كعادتها +كعالم +كعامل +كعب +كعرب +كعضو +كعقار +كعكة +كعلاج +كعلامة +كعلم +كعملات +كعملة +كعنوان +كعهدها +كعيكاتي +كـ +كـوانج +كف +كفء +كفؤا +كفئاً +كفاء +كفاءات +كفاءاتها +كفاءة +كفاءته +كفاءتها +كفاءتهم +كفاءتي +كفاتورة +كفاح +كفاحه +كفاحها +كفاحي +كفارة +كفارس +كفاك +كفالات +كفاه +كفاوين +كفايات +كفاية +كفة +كفت +كفته +كفتوح +كفتي +كفحول +كفر +كفرا +كفرنسا +كفريق +كفرًا +كفك +كفكرة +كفكف +كفل +كفلج +كفنان +كفه +كفى +كفي +كفيف +كفيفا +كفيل +كفيلان +كفيلاً +كفيلة +كفين +كفّة +كفّت +كفَّة +كفِّ +كقارب +كقاصّة +كقاعة +كقاعدة +كقرية +كقسم +كقصبة +كقصة +كقضاة +كقطرة +كقطع +كقطيع +كقلائد +كقوة +كقيمة +ككائن +ككاتب +ككاتبة +ككتّاب +ككل +ككلاب +ككلية +ككوادر +ككوبيين +ككومبارس +كل +كلا +كلاب +كلاباً +كلابريا +كلارا +كلارك +كلارينز +كلاسيك +كلاسيكي +كلاسيكية +كلاسيكيّ +كلام +كلاما +كلاماً +كلامك +كلامنا +كلامه +كلامها +كلامهم +كلامي +كلامية +كلاميديا +كلانا +كلانجا +كلاهما +كلاوس +كلاي +كلاين +كلاً +كلاًّ +كلب +كلبه +كلبها +كلبي +كلتا +كلتاهما +كلتيهما +كلثوم +كلرز +كلش +كلعبة +كلف +كلفة +كلفت +كلفتك +كلفته +كلفتها +كلفك +كلفني +كلفه +كلكامش +كلكم +كلل +كللت +كلما +كلمات +كلماتك +كلماته +كلماتها +كلماتهما +كلماتي +كلمة +كلمةً +كلمةٍ +كلمتا +كلمتان +كلمته +كلمتها +كلمتي +كلمتين +كلمن +كلنا +كله +كلها +كلهم +كلهن +كلوب +كلود +كلوديا +كلور +كلورادو +كلورايد +كلوفر +كليا +كليات +كلياً +كليب +كلية +كليةً +كليته +كلير +كليرز +كليفلاند +كليفورد +كليلة +كلينتون +كليهما +كليو +كليوباترا +كلٌ +كلٍ +كلَها +كلّ +كلٌّ +كلَّ +كلِّ +كلِّيَّةً +كم +كمؤرخ +كمؤسسات +كمؤسسة +كمؤشر +كمؤشرات +كمؤلف +كمئات +كما +كماأن +كمادات +كمادة +كمال +كمامته +كمان +كمبردج +كمبوديا +كمبيد +كمبيدات +كمبيوتر +كمبيوتل +كمتجه +كمتحدث +كمترجم +كمتطلب +كمثال +كمثل +كمجتمع +كمجرد +كمحاربين +كمحددات +كمحرر +كمحمد +كمختلف +كمخرج +كمخرجة +كمدرس +كمدن +كمدير +كمدينة +كمذيب +كمراكز +كمرايا +كمرشد +كمرض +كمرضى +كمركز +كمزار +كمزولة +كمساعد +كمسافر +كمسبب +كمستحضر +كمستحضرات +كمستشار +كمستعربين +كمستقبلات +كمستهلكين +كمسلم +كمسلمين +كمشاهد +كمشرف +كمشروب +كمشكلة +كمصادر +كمصدات +كمصدر +كمصر +كمصور +كمطرب +كمظهر +كمعاملة +كمعدل +كمعدن +كمعظم +كمفتاح +كمفكر +كمقدم +كمقصد +كمل +كملف +كملوحة +كممثل +كمملكة +كممول +كمن +كمناضل +كمنبه +كمنتج +كمنجة +كمنشد +كمنطق +كمنطقة +كمنفذ +كمنهج +كمهتمين +كمهد +كمهر +كمهندس +كمهندسة +كمواد +كمواطنين +كمواقف +كموج +كمورد +كموسوعة +كموضة +كموطن +كمون +كميات +كمياته +كمياتها +كمياه +كمية +كميت +كميته +كمين +كمينا +كمّ +كمّاً +كمّيّة +كمًّا +كمُّ +كن +كنا +كنائس +كناري +كناشنا +كناقد +كنانات +كنانة +كناني +كنانيا +كناية +كنبات +كنت +كنتاكى +كنتاكي +كنتم +كنتها +كنتيجة +كنتُ +كنتُه +كنتِ +كنج +كنجة +كنجز +كندا +كندي +كندية +كنز +كنزا +كنزاً +كنزهة +كنزو +كنسبة +كنشرة +كنصب +كنظام +كنعان +كنـته +كنف +كنفه +كنفها +كنقيق +كنمط +كنموذج +كنهر +كنهه +كنهها +كنواة +كنوز +كنوزنا +كنوزها +كنوزًا +كنوع +كنية +كنيدي +كنيس +كنيسة +كنيسته +كنّ +كنّا +كهؤلاء +كهدف +كهدية +كهذا +كهذه +كهرباء +كهربائي +كهربائياً +كهربائية +كهربائيًا +كهربية +كهروكيميائيًا +كهف +كهفا +كهفي +كهلة +كهواة +كهواية +كهوف +كهولته +كهولندا +كهونيم +كو +كوابيس +كوابينا +كوات +كواحات +كواحد +كواحدة +كوادر +كوادره +كوارتيت +كوارث +كواكب +كوالالمبور +كوالدك +كوالده +كوامن +كوانج +كوب +كوبا +كوباكابانا +كوبر +كوبري +كوبي +كوة +كوتد +كوتسيا +كوجه +كوجهة +كوحدة +كوخ +كودا +كوده +كورت +كورتيزونية +كورليس +كورنيش +كورنيل +كورونا +كوري +كوريا +كوريتاسكوت +كورينايكا +كوريني +كوزارات +كوزارة +كوزموبوليتان +كوزموبوليتانية +كوزير +كوست +كوستاريكا +كوسوفا +كوسيط +كوسيلة +كوشما +كوفئ +كوفاري +كوفمان +كوفي +كوفية +كوفير +كوفيّ +كوفيّته +كوقود +كوكا +كوكب +كوكبة +كوكبنا +كوكس +كوكيلة +كول +كولدج +كولمبس +كولمبوس +كولورادو +كولومبس +كولومبو +كولومبوس +كولومبيا +كوليربا +كوليردج +كوم +كوما +كومبانترين +كومبيفير +كومبيوترية +كومة +كومدكس +كومنتري +كوميدي +كوميديا +كون +كونابل +كوناً +كونت +كونتنو +كونج +كونديرا +كونراد +كونستانت +كونسورتيوم +كونسولو +كونسيرج +كونشوار +كونفشيوس +كونك +كونكايت +كونكتسف +كونكتكت +كونكورد +كونلز +كوننا +كونه +كونها +كونهم +كوني +كونيا +كونيان +كونية +كونيكتيكت +كوهبي +كوهن +كويتا +كويتي +كوين +كوينزلاند +كوّن +كى +كي +كياروستامي +كياس +كياستك +كيان +كيانات +كيانه +كيانها +كياني +كيب +كيد +كير +كيربرشويك +كيرستين +كيركجارد +كيرلا +كيز +كيس +كيسا +كيسادا +كيساً +كيسها +كيسيّ +كيف +كيفما +كيفي +كيفية +كيكرز +كيلاني +كيلبورن +كيلة +كيلو +كيلوجرام +كيلوجراما +كيلوجرامين +كيلومتر +كيلومترا +كيلومترات +كيلومتراً +كيلومترين +كيلومترًا +كيما +كيماوي +كيماويات +كيماوية +كيموسكوب +كيمياء +كيميائي +كيميائيا +كيميائياً +كيميائية +كين +كينج +كيندي +كينك +كينون +كينونة +كينيا +كينيه +كيوتو +كيَّفه +كَبُرَ +كُتب +كُتبت +كُتُب +كُتِبَ +كُتّاب +كُثر +كُسيت +كُفِّي +كُلى +كُلّفتْ +كُلِّف +ل +لآثار +لآخر +لآداب +لآدابها +لآدم +لآفات +لآفاقها +لآل +لآلئ +لآلات +لآلاف +لآلة +لآماد +لآمال +لآيات +لأ +لأؤدي +لأؤكد +لأب +لأبحاث +لأبحث +لأبدأ +لأبدلوا +لأبرر +لأبرز +لأبسط +لأبعاد +لأبقراط +لأبناء +لأبنائنا +لأبنائه +لأبنائها +لأبنائهم +لأبنائهما +لأبنك +لأبوظبي +لأبويه +لأبي +لأبيض +لأبيه +لأتابع +لأتباعه +لأتبين +لأتساءل +لأتعلم +لأتممها +لأتوقع +لأتولى +لأثمرت +لأثير +لأجبت +لأجبتك +لأجد +لأجدادهم +لأجدّ +لأجزاء +لأجل +لأجلبهم +لأجله +لأجمع +لأجنده +لأجهزة +لأحجية +لأحد +لأحدث +لأحدها +لأحدهم +لأحضره +لأحكام +لأحلام +لأحلى +لأحمد +لأحمل +لأحوال +لأخبار +لأخذ +لأخرجها +لأخره +لأخرى +لأخطار +لأخلاق +لأخي +لأداء +لأدب +لأدباء +لأدبك +لأدبه +لأدرس +لأدركت +لأدركنا +لأدفع +لأدنى +لأدوية +لأدويتها +لأدي +لأذاكر +لأذكر +لأذواق +لأذواقهم +لأذوق +لأذية +لأرأس +لأراضي +لأراقب +لأربط +لأربع +لأربعة +لأرسطو +لأرسطوفان +لأرسم +لأرقام +لأرى +لأريك +لأريكم +لأزحنا +لأزدجر +لأزمات +لأزمة +لأزمته +لأسئلة +لأسابيع +لأساتذة +لأسال +لأساليب +لأساهم +لأسباب +لأسبوعين +لأستاذه +لأستاذها +لأستاذي +لأستاذية +لأستجلي +لأستعين +لأستكشافها +لأسر +لأسرة +لأسرته +لأسرتها +لأسس +لأسعار +لأسعاره +لأسفل +لأسلافه +لأسلوب +لأسماء +لأسواق +لأسيوط +لأشبع +لأشتري +لأشجار +لأشخاص +لأشرت +لأشرطة +لأشعار +لأشعة +لأشقائنا +لأشكال +لأشهر +لأصالة +لأصبحت +لأصحاب +لأصحابها +لأصوات +لأصور +لأصول +لأطر +لأطفال +لأطفالنا +لأطفالها +لأطفالهم +لأطفالي +لأطهرها +لأطول +لأعالي +لأعبر +لأعتبر +لأعداد +لأعراض +لأعضاء +لأعظم +لأعلام +لأعلى +لأعماق +لأعمال +لأعمالنا +لأعماله +لأعمالها +لأعمدة +لأعوانه +لأعود +لأعين +لأفتش +لأفراد +لأفراده +لأفرشنّ +لأفضل +لأفكاره +لأفكارها +لأفكارهم +لأفكر +لأفلام +لأفيد +لأقارب +لأقاربه +لأقانيم +لأقسام +لأقسى +لأقصاب +لأقل +لأقوال +لأقوالها +لأقول +لأقوم +لأقيم +لأكاديمية +لأكبر +لأكتب +لأكثر +لأكداس +لأكلهم +لأكمل +لأكون +لألاءة +لألبوماتي +لألتقاط +لألتهم +لألعاب +لألعب +لألف +لألفاظه +لألفريد +لألقاء +لألقي +لألمانيا +لألوان +لألوانها +لأم +لأمارس +لأمة +لأمتنا +لأمته +لأمثالنا +لأمثالها +لأمد +لأمر +لأمراض +لأمريكا +لأمسيات +لأمك +لأمل +لأملاح +لأمم +لأمن +لأمنياتنا +لأمنية +لأمه +لأمها +لأمهات +لأمواج +لأمي +لأمير +لأمين +لأن +لأناس +لأنثى +لأندريه +لأندية +لأنسى +لأنشطة +لأنطاكية +لأنطون +لأنظر +لأنظمة +لأنعمه +لأنفسنا +لأنفسهم +لأنفي +لأنقذنا +لأنقل +لأنك +لأنكم +لأننا +لأنني +لأنه +لأنها +لأنهم +لأنهما +لأنهن +لأنواع +لأني +لأنّا +لأنّاس +لأنّه +لأنّها +لأهالى +لأهالي +لأهداف +لأهرب +لأهل +لأهله +لأهم +لأهمية +لأهميته +لأهميتهما +لأواصل +لأوافق +لأوانه +لأوبيك +لأوجست +لأورام +لأوربا +لأوركسترا +لأوزانهم +لأوسكار +لأوضاع +لأوطانها +لأوقات +لأوكرانيا +لأول +لأولئك +لأولاد +لأولاده +لأولادي +لأوّل +لأى +لأي +لأيام +لأية +لأيتام +لأيد +لأيديولوجيا +لأيسلندا +لأيّ +لأُكَفِّرَنَّ +لإبداع +لإبداعه +لإبراز +لإبراهيم +لإبعاد +لإبقاء +لإتمام +لإتمامها +لإثبات +لإجباره +لإجراء +لإجماع +لإحداث +لإحدى +لإحراجه +لإحراز +لإحساس +لإحصاءات +لإحياء +لإخضاعنا +لإخفاء +لإخفائها +لإخفاقي +لإخوانه +لإدارة +لإدارتي +لإدخال +لإدراك +لإدوارد +لإذاعة +لإرجاع +لإرساء +لإرسال +لإرسالها +لإرشاد +لإرهاب +لإرواء +لإروائه +لإزالة +لإسبانيا +لإستصطدار +لإستضافة +لإستعدادا +لإسرائيل +لإسعادي +لإسكات +لإسلامه +لإسهاماته +لإسهامه +لإشارات +لإشارة +لإشاعة +لإشباع +لإشراف +لإشكالياتها +لإشكالية +لإصابات +لإصدار +لإصدارها +لإصلاح +لإضاءة +لإضفاء +لإطالة +لإطعام +لإطلاع +لإطلاق +لإعادة +لإعادتنا +لإعاقة +لإعالة +لإعالته +لإعانة +لإعداد +لإعطاء +لإعلامها +لإعلان +لإفراز +لإفريقيا +لإفساد +لإفهامهم +لإقامة +لإقامته +لإقامتها +لإقحام +لإقصاء +لإقليم +لإقناع +لإقناعه +لإقناعهم +لإكساب +لإكسابها +لإكمال +لإلقاء +لإمارة +لإمداد +لإمكان +لإمكانات +لإمكانيات +لإنتاج +لإنجاز +لإنجازات +لإنجازها +لإنسان +لإنشاء +لإنشائه +لإنعاش +لإنفاق +لإنقاذ +لإنقاذها +لإنقاص +لإنهاء +لإنهائها +لإنهاض +لإهداء +لإيجاد +لإيجاده +لإيجار +لإيذاء +لإيران +لإيصال +لإيقاظ +لإيقاع +لإيقاف +لإيلاج +لإيهام +لئلا +لئن +لا +لاأتصور +لاأجد +لاأحد +لاأدري +لاأريد +لاأزال +لاأميزه +لاأهتم +لاإرادي +لاإراديا +لاإقليدية +لائحة +لائذاً +لائق +لائكيا +لائكية +لائم +لاارادي +لاب +لابأس +لابتعاث +لابتكار +لابتلاع +لابد +لابدأ +لابدّ +لابقاء +لابن +لابنته +لابنتها +لابنتي +لابنه +لابورد +لابيزينجا +لابيه +لاتأتي +لاتأخذ +لاتؤدي +لاتباع +لاتباعه +لاتبعنا +لاتتجاوز +لاتتحقق +لاتتحمل +لاتتعرض +لاتجد +لاتحاد +لاتحبل +لاتحتاج +لاتحركها +لاتخاذ +لاتخرج +لاتخشى +لاتخفى +لاتخلو +لاتدركها +لاتدل +لاتذيب +لاتربطهم +لاتريب +لاتريد +لاتزال +لاتزيد +لاتساع +لاتشبع +لاتشبه +لاتصل +لاتصهل +لاتعبير +لاتعرف +لاتعمم +لاتعيش +لاتفرح +لاتفيها +لاتقاء +لاتقال +لاتقبل +لاتكتب +لاتكفي +لاتكون +لاتمسوه +لاتنسى +لاتنير +لاتهام +لاتوفرها +لاتيس +لاتيني +لاتينية +لاثبات +لاجئ +لاجئا +لاجئة +لاجتياح +لاجل +لاجنسيًّا +لاحت +لاحتراف +لاحتضان +لاحتفالات +لاحتفالاتها +لاحتلال +لاحتمال +لاحتواء +لاحتوائه +لاحتياجات +لاحتياجاته +لاحتياجاتهم +لاحتياجها +لاحضار +لاحظ +لاحظت +لاحظته +لاحظنا +لاحظه +لاحق +لاحقا +لاحقاً +لاحقة +لاحقتها +لاحقه +لاحقًا +لاحول +لاختبار +لاختبارات +لاختباره +لاختراع +لاختراعه +لاختراق +لاختصار +لاختصاصها +لاختفاء +لاختفائه +لاختلاجات +لاختلاف +لاختلافات +لاختلافه +لاختيار +لاختيارك +لاختيارنا +لاداعي +لادن +لاذت +لاذع +لاذعا +لاذعة +لارتباط +لارتباطه +لارتخاء +لارتفاع +لارسون +لاري +لاريب +لاريدو +لازال +لازالت +لازدهار +لازلت +لازلتُ +لازلتِ +لازلنا +لازم +لازما +لازمة +لازمك +لازمني +لازمه +لازمها +لازورد +لاس +لاسال +لاسانزا +لاسبيل +لاستئصال +لاستثمار +لاستثماراتها +لاستجلاء +لاستخدام +لاستخدامه +لاستخدامها +لاستخدمت +لاستخراج +لاستخلاص +لاستدراك +لاستراتيجيات +لاسترجاع +لاسترجاعها +لاسترداده +لاستشارتها +لاستشراف +لاستضافة +لاستطاعت +لاستطعنا +لاستطلاع +لاستعادة +لاستعجال +لاستعدادي +لاستعراض +لاستعمار +لاستعمال +لاستعمالاتنا +لاستعمالها +لاستفتاء +لاستقبال +لاستقباله +لاستقدام +لاستقراره +لاستقصاء +لاستقطاب +لاستكشاف +لاستكمال +لاستلام +لاستمرار +لاستمرارية +لاستنساخ +لاستهلاك +لاستيراد +لاستيطان +لاستيعاب +لاستيعابها +لاسم +لاسمه +لاسمها +لاسنت +لاسيما +لاسينزا +لاشأن +لاشعورية +لاشك +لاشيء +لاصدقائه +لاصطياد +لاصقة +لاضطرابات +لاضطهاد +لاعادة +لاعب +لاعبو +لاعتبارات +لاعتقادنا +لاعتقادهم +لاعتقادي +لاعتقال +لاعتقد +لاعلاقة +لاعلم +لافاندوم +لافت +لافتا +لافتات +لافتة +لافتراس +لافوازييه +لافونتي +لافيران +لاقامة +لاقة +لاقت +لاقتحام +لاقتصار +لاقتضاء +لاقتفاء +لاقتلاعه +لاقتناص +لاقدر +لاقى +لاقيت +لاقيتها +لاقيمة +لاكتساب +لاكتشاف +لاكتشفت +لاكتظاظ +لاكوست +لال +لالتحاق +لالتحاقه +لالتقاء +لالتقاط +لالتهاب +لامباريا +لامبالاته +لامبرك +لامة +لامتحان +لامتحاناتها +لامتداد +لامتصاص +لامتلاك +لامتناهية +لامتيازاتها +لامتيازاتهم +لامجال +لامدادك +لامدارس +لامرأة +لامرتين +لامس +لامست +لامسته +لامعاً +لامعة +لاميناريا +لان +لانبعاث +لانتدابه +لانتزاع +لانتشار +لانتشال +لانتصور +لانتقال +لانتقاله +لانتهاك +لانتهت +لانج +لانجيري +لانحراف +لانحيازي +لانخرج +لانخفاض +لاند +لاندماج +لانريد +لانزال +لانست +لانستطيع +لانسيت +لانصراف +لانصرافي +لانطلاق +لانعقاده +لانعلم +لانفتاح +لانفجار +لانفعالاته +لانقاذ +لانقاص +لانقضاض +لانقطاع +لانكستر +لانني +لانها +لانهاية +لانهيار +لاهاي +لاهبا +لاهتزاز +لاهتم +لاهث +لاهثا +لاهثة +لاهثًا +لاهور +لاهية +لاهين +لاوست +لاي +لايبقى +لايتضمن +لايتم +لايتيح +لايثير +لايجب +لايجد +لايحتاج +لايحترمون +لايحدث +لايحصل +لايحصلون +لايخشون +لايخفى +لايدركون +لايدن +لايذكرهم +لايراه +لايرتاب +لايزال +لايزالون +لايزيد +لايسألون +لايستطيع +لايستهدف +لايسمح +لايشبه +لايشك +لايشهد +لايصل +لايطمع +لايعاد +لايعتمد +لايعد +لايعني +لايفصل +لايقدر +لايقرأنا +لايكتب +لايكتبون +لايكون +لايمكن +لايمكنهن +لايملكون +لايمنح +لاين +لاينفصل +لايني +لايهتمون +لايوجد +لاَ +لب +لبؤة +لبائع +لباب +لباحث +لباحثين +لباس +لباسه +لباسهن +لباقي +لباكستان +لبالي +لباني +لبترته +لبتهوفن +لبث +لبثت +لبحث +لبحر +لبحوث +لبحيرة +لبدء +لبداية +لبدة +لبدن +لبذور +لبرامج +لبرامز +لبرك +لبرمجيات +لبرنامج +لبريطانيا +لبس +لبسته +لبسك +لبسه +لبشرته +لبضائعها +لبضع +لبطاقات +لبطاقة +لبطل +لبعثة +لبعدي +لبعض +لبعضها +لبعضهم +لبعضهما +لبق +لبقة +لبقي +لبقية +لبكتريا +لبلادنا +لبلاده +لبلادهم +لبلاشير +لبلد +لبلدان +لبلدانهم +لبلدة +لبلدنا +لبلده +لبلدوين +لبلدية +لبلورة +لبنا +لبناء +لبنات +لبنان +لبناني +لبنانية +لبنود +لبني +لبنياً +لبنيكم +لبواكير +لبوس +لبولب +لبوني +لبي +لبيان +لبيانات +لبيب +لبيتك +لبيتنا +لبيته +لبيرم +لبيروت +لبيضها +لبيع +لبيعها +لبيك +لبيوت +لبَلْورة +لبّ +لبّوا +لبّيت +لة +لتأثير +لتأثيرها +لتأخذ +لتأخذي +لتأخير +لتأدية +لتأذيه +لتأسيس +لتأكل +لتأكيد +لتأليف +لتأمين +لتأهيل +لتأهيلهم +لتأييد +لتؤدي +لتؤطر +لتؤكد +لتاجر +لتاريخ +لتاريخهم +لتاريخي +لتبادلنا +لتبتلعها +لتبدأ +لتبدلت +لتبدو +لتبديله +لتبرئته +لتبرز +لتبرير +لتبصيرهم +لتبعد +لتبقى +لتبلور +لتبني +لتتجمع +لتتجنب +لتتحقق +لتتحول +لتتخصص +لتتخلق +لتتر +لتترك +لتتساقط +لتتساوى +لتتسرَّب +لتتسلم +لتتصفح +لتتعرف +لتتفادى +لتتقارب +لتتقيح +لتتكامل +لتتكثف +لتتكشف +لتتكون +لتتكيّف +لتتلاءم +لتتلاقى +لتتم +لتتمكن +لتتناسب +لتتوافر +لتتوافق +لتتوقف +لتتولى +لتثبت +لتثبيت +لتثقيفه +لتثور +لتجارب +لتجاوز +لتجاوزها +لتجتاح +لتجتازي +لتجتمع +لتجد +لتجديد +لتجربة +لتجربته +لتجربتي +لتجري +لتجسيد +لتجفف +لتجفيف +لتجلب +لتجلية +لتجمع +لتجميع +لتجميل +لتجنب +لتجنبها +لتجنيب +لتحاصر +لتحافظ +لتحاكي +لتحتفظ +لتحتل +لتحدث +لتحديات +لتحديث +لتحديد +لتحرق +لتحري +لتحرير +لتحسين +لتحصل +لتحصيل +لتحضر +لتحضيرهم +لتحطيم +لتحظى +لتحـفيز +لتحـقيق +لتحـويل +لتحقق +لتحقيق +لتحقيقات +لتحقيقه +لتحقيقها +لتحل +لتحليقه +لتحليل +لتحمل +لتحمله +لتحمي +لتحميله +لتحول +لتحوير +لتحويل +لتحويله +لتحويلها +لتحيط +لتحيّة +لتختلط +لتخدم +لتخرج +لتخريج +لتخزين +لتخسيس +لتخصص +لتخصيص +لتخطيط +لتخفف +لتخفيض +لتخفيف +لتخلص +لتخلق +لتخليد +لتخليص +لتخليق +لتدابير +لتدارس +لتدارك +لتداعب +لتداعيات +لتداعياته +لتداول +لتدخل +لتدخلي +لتدرج +لتدريب +لتدريس +لتدعو +لتدعيم +لتدفع +لتدلل +لتدليل +لتدني +لتدهور +لتذكرني +لتذكير +لتذوقها +لتذويب +لتر +لترا +لتراب +لترات +لتراث +لتراثنا +لتراثهم +لتراخيص +لتراعي +لتراقبه +لتراكم +لتراني +لتراً +لتربية +لتربيته +لتربيتي +لترتبط +لترتيب +لترتيبه +لترجمة +لترجيح +لترحمنا +لترسم +لترسمي +لترسيخ +لترسيخها +لترشيد +لترصد +لترضع +لترطيب +لترفع +لترفعها +لترقق +لترقية +لتركيا +لتركيزات +لترميم +لترهل +لتروج +لترويج +لترويجه +لترى +لتري +لتريحهم +لتريها +لتزاحم +لتزايد +لتزود +لتزول +لتزويد +لتزويدهم +لتزوير +لتزيينها +لتسأل +لتساعد +لتساعدني +لتساقط +لتسامح +لتسبح +لتستثمر +لتسترجع +لتستضيف +لتستطيع +لتستعملها +لتستعيد +لتستعيض +لتستقر +لتستكشف +لتستمر +لتستوعب +لتسجل +لتسجيل +لتسجيلهم +لتسحتك +لتسديد +لتسع +لتسعة +لتسقط +لتسكب +لتسكبه +لتسكنوا +لتسلط +لتسلمها +لتسلية +لتسليط +لتسليم +لتسهم +لتسهيل +لتسوية +لتسويق +لتسىير +لتسيل +لتسيير +لتشابه +لتشتري +لتشخيص +لتشريدهم +لتشعر +لتشعله +لتشكك +لتشكل +لتشكيل +لتشكّل +لتشمل +لتشن +لتشويه +لتشيد +لتصبح +لتصحيح +لتصدر +لتصدَّر +لتصطاد +لتصعد +لتصل +لتصميم +لتصنع +لتصنيع +لتصنيف +لتصهر +لتصور +لتصورهم +لتصوير +لتصويرها +لتصويري +لتصير +لتضع +لتضعضعت +لتضليل +لتضم +لتضمن +لتضمها +لتضيع +لتضييع +لتطبيع +لتطبيق +لتطرد +لتطرية +لتطعيم +لتطل +لتطليق +لتطور +لتطوى +لتطوير +لتطويرها +لتطويع +لتعارفوا +لتعاليم +لتعاملات +لتعبر +لتعبّر +لتعد +لتعداد +لتعدد +لتعددية +لتعديل +لتعرض +لتعرية +لتعريف +لتعريفهم +لتعزز +لتعزية +لتعزيز +لتعطل +لتعطي +لتعطيل +لتعظيم +لتعقيم +لتعكس +لتعلق +لتعلم +لتعلمه +لتعلن +لتعليقه +لتعليم +لتعليمات +لتعمل +لتعمية +لتعميمها +لتعود +لتعويض +لتعيد +لتعيدني +لتعيش +لتعينها +لتعيّن +لتفادي +لتفاصيل +لتفاقمت +لتفاهة +لتفتيش +لتفجّر +لتفريخ +لتفرُّدٍ +لتفسح +لتفسير +لتفصيل +لتفض +لتفعيل +لتفقد +لتفكر +لتفكيك +لتفهم +لتفوق +لتقارب +لتقارير +لتقاطيع +لتقانيات +لتقاوم +لتقبض +لتقبل +لتقترب +لتقدم +لتقدمه +لتقدير +لتقديم +لتقدّم +لتقرر +لتقريب +لتقريبها +لتقرير +لتقص +لتقصر +لتقصّي +لتقف +لتقل +لتقليص +لتقليل +لتقنيات +لتقودني +لتقول +لتقوم +لتقوية +لتقويم +لتقويمه +لتقويمها +لتقىيم +لتقي +لتقيم +لتقييم +لتكاثر +لتكاد +لتكاليف +لتكامل +لتكتب +لتكتمل +لتكثيف +لتكرارها +لتكرس +لتكريس +لتكريم +لتكريمهم +لتكسر +لتكلفة +لتكليف +لتكن +لتكون +لتكوين +لتكوّن +لتلائم +لتلاحقك +لتلاحقني +لتلامذته +لتلاميذه +لتلاوة +لتلبى +لتلبية +لتلبيتها +لتلتصق +لتلحق +لتلحقهم +لتلعب +لتلفزيون +لتلقى +لتلقي +لتلقيني +لتلك +لتلمحها +لتلمس +لتلميذ +لتلميذه +لتلوُّث +لتماس +لتمتعهم +لتمزق +لتمشية +لتمضي +لتمضية +لتمكين +لتملأ +لتملك +لتمنعهم +لتمنّ +لتمهد +لتمويل +لتناسب +لتنافس +لتنالي +لتنام +لتناول +لتناوله +لتنبيه +لتنتج +لتنتحر +لتنتشر +لتنتقل +لتنتقي +لتنتهي +لتنداح +لتندلع +لتنذرها +لتنزعه +لتنزوي +لتنسحق +لتنسيق +لتنشئة +لتنشر +لتنشط +لتنشيط +لتنصت +لتنطلق +لتنظر +لتنظم +لتنظيف +لتنظيم +لتنظيمها +لتنفقه +لتنفي +لتنفيذ +لتنفيذه +لتنفيذها +لتنقص +لتنقل +لتنقية +لتنكأه +لتنمي +لتنمية +لتنميتها +لتنهي +لتنوع +لتنير +لتهاجم +لتهدمه +لتهديدات +لتهديها +لتهريب +لتهنئني +لتهوية +لتهيئة +لتواجه +لتوازن +لتواصل +لتواضعهم +لتوافد +لتوافر +لتوالد +لتوجه +لتوجهات +لتوجيه +لتوجيهات +لتوجّه +لتوزيع +لتوزيعها +لتوسطها +لتوسيع +لتوصلك +لتوصلها +لتوطيد +لتوطين +لتوظيف +لتوعية +لتوفر +لتوفرها +لتوفير +لتوقف +لتوقيع +لتولستوي +لتولي +لتوليد +لتوه +لتوها +لتوهم +لتوّه +لتيار +لتيارات +لتيّار +لتُطوى +لتُفسح +لتُقطف +لثانويات +لثاني +لثروة +لثقافات +لثقافة +لثقافتنا +لثقته +لثلاث +لثلاثة +لثمان +لثماني +لثمانية +لثماً +لثنايا +لثوان +لثوران +لثورة +لجأ +لجأت +لجأتُ +لجأنا +لجاء +لجائزة +لجارثيا +لجاره +لجالينوس +لجام +لجامعة +لجان +لجبر +لجبران +لجبل +لجبهة +لجداتنا +لجدار +لجدته +لجدران +لجدل +لجدوى +لجدي +لجذب +لجذورها +لجرائم +لجراثيم +لجراح +لجراحها +لجرعات +لجريدة +لجريدته +لجرينلاند +لجزء +لجزارها +لجزيرة +لجسارة +لجسدها +لجسم +لجعل +لجعلنا +لجعله +لجلاء +لجلال +لجلالة +لجلوس +لجليده +لجم +لجماجم +لجمال +لجماليات +لجمالية +لجماهير +لجمع +لجمعية +لجملة +لجمهوري +لجمهورية +لجموع +لجميع +لجميل +لجنة +لجنته +لجنتهم +لجنسية +لجنينها +لجنيّ +لجهات +لجهاز +لجهة +لجهده +لجهود +لجهوده +لجهودها +لجوء +لجوءها +لجوئي +لجوائز +لجواد +لجوانب +لجوته +لجودة +لجول +لجولة +لجيش +لجيل +لحاجات +لحاجة +لحاجته +لحاخامات +لحاخامي +لحادثة +لحاشية +لحافي +لحاقي +لحال +لحالات +لحالة +لحالته +لحالتها +لحالتهم +لحام +لحاملي +لحامية +لحبها +لحبوب +لحج +لحجاج +لحجب +لحجز +لحجم +لحد +لحدائق +لحدوث +لحدوثها +لحدود +لحديث +لحديثه +لحديد +لحديقة +لحذاء +لحرارة +لحراسة +لحرس +لحرصها +لحرف +لحرق +لحركة +لحركتها +لحروب +لحروفه +لحرية +لحريق +لحزب +لحزن +لحس +لحساب +لحسابات +لحسابها +لحسن +لحسنات +لحسه +لحصان +لحصر +لحصلنا +لحصن +لحصول +لحضارة +لحضارتنا +لحضراتكم +لحضور +لحضوره +لحضورها +لحظات +لحظاتها +لحظاتي +لحظة +لحظت +لحظته +لحظتها +لحظتي +لحظر +لحظيرة +لحـفظ +لحـوالى +لحفر +لحفظ +لحفظة +لحفيدته +لحق +لحقبة +لحقت +لحقل +لحقن +لحقه +لحقوق +لحقوقنا +لحقوقه +لحقوقها +لحقول +لحقيقة +لحكايات +لحكم +لحكمة +لحكمهم +لحكومة +لحكومته +لحل +لحلف +لحلقة +لحلم +لحلمي +لحلول +لحم +لحماره +لحماس +لحماسة +لحمامات +لحماية +لحمايته +لحمايتها +لحمة +لحمل +لحملة +لحمله +لحمه +لحمها +لحمي +لحن +لحنا +لحناً +لحنت +لحنجرة +لحنجرتي +لحنه +لحنها +لحني +لحنيه +لحنًا +لحوادث +لحوار +لحوالي +لحوحًا +لحوليات +لحوم +لحي +لحياة +لحياتنا +لحياته +لحياتها +لحياتهم +لحية +لحيته +لحيلها +لحيمة +لحين +لحيوات +لحيوان +لحيوانات +لحّن +لخابيط +لخاتم +لخاصة +لخالق +لخاله +لخبراء +لخبير +لخجل +لخداع +لخدعة +لخدمات +لخدمة +لخدمته +لخدمتهم +لخروج +لخزائن +لخصت +لخصوصية +لخصومات +لخضته +لخطاب +لخطبتها +لخطبتي +لخطة +لخطر +لخطط +لخططنا +لخطواتنا +لخطوة +لخطوته +لخطورة +لخطورتها +لخطّاء +لخفت +لخفض +لخلاص +لخلافته +لخلافتها +لخلق +لخلو +لخلية +لخليفة +لخليفته +لخمس +لخمسة +لخمسين +لخوض +لخوفه +لخيالي +لخير +لد +لدأبها +لداء +لدائرة +لدائن +لدائني +لدار +لداروين +لدانة +لدبلوم +لدخان +لدخول +لدرء +لدراسات +لدراساتي +لدراسة +لدراسته +لدراستها +لدرجات +لدرجة +لدرجتي +لدرفلة +لدروس +لدس +لدعم +لدعمها +لدعوة +لدعوته +لدعوتها +لدفتر +لدفع +لدفعه +لدقائق +لدقة +لدماء +لدن +لدنة +لدنيا +لدهم +لدواء +لدواعي +لدواوين +لدود +لدودا +لدودة +لدور +لدورة +لدورتين +لدوره +لدورهم +لدورياتِ +لدول +لدولة +لدولتهم +لدى +لدي +لديدان +لديك +لديكم +لدين +لدينا +لدينها +لديه +لديها +لديهم +لديهما +لديهن +لديوان +لديّ +لذ +لذا +لذات +لذاته +لذاتها +لذاك +لذاكرتها +لذة +لذتها +لذعاته +لذكائه +لذكر +لذكراه +لذكرت +لذكرها +لذكرى +لذلك +لذهن +لذواتهم +لذوق +لذوقهم +لذوي +لذيذ +لذيذا +لذّ +لذّته +لرأس +لرأي +لرأيت +لرؤاهم +لرؤية +لرؤيتك +لرؤيته +لرؤيتها +لرؤيتهم +لرئاسة +لرئيس +لرئيسه +لرابطة +لراحة +لراكب +لرامز +لراويته +لرباعيات +لربة +لربط +لربما +لرجال +لرجالات +لرجل +لرجلٍ +لرحالة +لرحلات +لرحلاتهم +لرحلة +لرحيق +لرخص +لرد +لرداءة +لردح +لردم +لرسالة +لرسام +لرسومك +لرش +لرصد +لرصدها +لرضا +لرضح +لرعاية +لرعايتها +لرعيته +لرفضه +لرفع +لرقابة +لركاب +لركابها +لرمضان +لرموز +لرمي +لرميته +لرواد +لرواده +لرواية +لروتردام +لروجر +لروح +لروحها +لروحي +لروسيا +لرياضة +لزائره +لزاما +لزبائنها +لزبد +لزبيدة +لزج +لزجاً +لزجة +لزحف +لزراعة +لزرع +لزرعها +لزعم +لزعيم +لزكريا +لزم +لزما +لزمام +لزملائي +لزمه +لزميل +لزميلهم +لزميلي +لزنكي +لزواجه +لزواجى +لزوار +لزوارها +لزوجة +لزوجته +لزوجتي +لزوجها +لزوجي +لزوم +لزيادة +لزيارة +لزيارتك +لزيارته +لزيارتها +لزيارتي +لسؤال +لسؤالك +لسؤاله +لسؤالهم +لسؤالهِ +لسائح +لسائر +لسارس +لساعات +لساعة +لساكنه +لسان +لسانا +لساننا +لسانه +لسانها +لساني +لسانيات +لسانية +لسبات +لسبب +لسببين +لسبع +لسبعة +لسبعين +لست +لستة +لستُ +لستِ +لسجناء +لسحب +لسحرا +لسخرية +لسخطه +لسد +لسدس +لسرطان +لسرطانات +لسرعة +لسرقة +لسطوع +لسعادة +لسعة +لسعته +لسعها +لسعود +لسعي +لسفر +لسفرتنا +لسفن +لسفينة +لسقراط +لسقطت +لسقوط +لسكان +لسكانه +لسكانها +لسكين +لسلاسة +لسلسلة +لسلطات +لسلطة +لسلوك +لسلوكات +لسلوكه +لسلوكيات +لسليم +لسليمان +لسماع +لسمعة +لسمكة +لسمناها +لسموكم +لسنا +لسنة +لسنةٍ +لسنتين +لسنوات +لسوء +لسواحل +لسواه +لسور +لسورتي +لسوريا +لسورية +لسوف +لسوق +لسويسرا +لسويعات +لسياحة +لسيارات +لسيارة +لسيارتي +لسياسات +لسياسة +لسيد +لسيدات +لسيدة +لسير +لسيرة +لسيرين +لسيطرة +لسيطرتهم +لسيل +لسينما +لشؤون +لشؤونها +لشئون +لشارع +لشاطئ +لشاعر +لشاكر +لشباب +لشبكة +لشبهة +لشبونة +لشتى +لشتّى +لشجرة +لشجونه +لشحناتهم +لشخص +لشخصيات +لشخصية +لشخصيته +لشخصين +لشدة +لشراء +لشرح +لشرحها +لشرق +لشركات +لشركة +لشرم +لشروط +لشريط +لشريك +لشعائر +لشعبه +لشعر +لشعراء +لشعوب +لشعوره +لشعوري +لشفاء +لشق +لشقيقتيه +لشقيقه +لشكل +لشم +لشن +لشهادة +لشهر +لشهرته +لشهيته +لشوارع +لشوقي +لشيء +لشيخنا +لشيخه +لشيراتون +لشيرين +لشيطان +لشيوخ +لشيوخه +لشَرْعنة +لص +لصاحب +لصاحبتها +لصاحبه +لصاحبها +لصالح +لصالحنا +لصالحه +لصالحهم +لصان +لصبي +لصحة +لصحراء +لصحيفة +لصداق +لصدق +لصدمات +لصديقه +لصديقي +لصراحته +لصراعات +لصراف +لصرخة +لصرخته +لصرفه +لصعود +لصفاته +لصفحة +لصفوف +لصفية +لصق +لصقات +لصقها +لصلاة +لصلاح +لصناع +لصناعات +لصناعة +لصندوق +لصنع +لصنعاء +لصهره +لصهيل +لصوامع +لصور +لصورة +لصوص +لصون +لصيانة +لصيت +لصيحة +لصيد +لصيف +لصيقة +لصيقًا +لضاع +لضبط +لضبع +لضحايا +لضحكات +لضخ +لضخامة +لضخامته +لضرب +لضرورات +لضرورة +لضعف +لضعفنا +لضعفه +لضفدعة +لضلالي +لضمان +لضيف +لضيوف +لضيوفه +لضيوفها +لطائر +لطائرات +لطائراتها +لطائرة +لطائفة +لطارق +لطاقات +لطاقاتنا +لطاقة +لطالباتي +لطالبي +لطالما +لطباعة +لطباعته +لطبع +لطبعها +لطبقة +لطبيب +لطبيعة +لطرابلس +لطرح +لطرد +لطردنا +لطرده +لطريقها +لطـوانا +لطف +لطفل +لطفلين +لطفولته +لطفي +لطفًا +لطلاب +لطلابنا +لطلابه +لطلابها +لطلب +لطلبات +لطلباته +لطلبة +لطلبه +لطلبي +لطمس +لطموح +لطموحه +لطه +لطوكيو +لطول +لطيف +لطيفاً +لطيفة +لظاهرة +لظاهرتي +لظروف +لظلم +لظهور +لظهوره +لعائلات +لعائلة +لعائلتنا +لعائلته +لعاب +لعاد +لعادات +لعادة +لعادل +لعازف +لعاصفة +لعالم +لعالمنا +لعام +لعامة +لعامل +لعامين +لعب +لعبادة +لعبارات +لعبة +لعبت +لعبته +لعبتها +لعبتهم +لعبتين +لعبد +لعبدالحليم +لعبدالرحمن +لعبدالكريم +لعبدالناصر +لعبده +لعبقرية +لعبه +لعبور +لعجز +لعجمي +لعدة +لعدد +لعدستي +لعدم +لعده +لعربي +لعرس +لعرسان +لعرشه +لعرض +لعرضها +لعرق +لعروس +لعزف +لعزم +لعشاق +لعشتروت +لعشر +لعشرات +لعشرة +لعشرين +لعصبة +لعصر +لعصره +لعصور +لعصيت +لعضلة +لعضوية +لعطاءات +لعطل +لعطلات +لعقار +لعقد +لعقدة +لعقدين +لعقيدتها +لعل +لعلاج +لعلاجات +لعلاجه +لعلاجها +لعلاقة +لعلاقته +لعلامة +لعلبة +لعلك +لعلم +لعلماء +لعلمك +لعلمنة +لعلمه +لعلنا +لعله +لعلها +لعلهم +لعلوم +لعلي +لعلّني +لعلّي +لعمار +لعمانوئيل +لعمر +لعمري +لعمق +لعمل +لعملاء +لعملائنا +لعملائها +لعملة +لعمله +لعملهم +لعمليات +لعملية +لعميدة +لعنات +لعناد +لعناصر +لعنة +لعنترة +لعنصر +لعهود +لعوادي +لعوالم +لعوامل +لعودة +لعودتهما +لعودتي +لعولمة +لعيادة +لعين +لعينيه +لعيون +لـ +لـباب +لـتطور +لـما +لـها +لـهذه +لف +لفأر +لفئات +لفائدة +لفارسها +لفاعليتها +لفافة +لفايزة +لفة +لفت +لفتة +لفتح +لفتحها +لفترات +لفترة +لفتق +لفتنا +لفتهم +لفحتها +لفحواها +لفخامة +لفخامته +لفرادتها +لفرد +لفرديناند +لفرص +لفرض +لفرط +لفرقة +لفرنسا +لفروع +لفرومنتان +لفريق +لفشل +لفصول +لفضح +لفضل +لفضلها +لفظ +لفظة +لفظت +لفظتان +لفظها +لفظي +لفظية +لفظًا +لفعاليات +لفعل +لفعلة +لفعلها +لفقدانه +لفقدانهم +لفقدهن +لفقراء +لفقهها +لفك +لفكر +لفكرة +لفكرنا +لفكره +لفككتُ +لفلاح +لفلسطين +لفلسفاتهم +لفلفة +لفلّك +لفن +لفنان +لفنانة +لفناني +لفنانين +لفندق +لفنه +لفنون +لفهم +لفهمه +لفهمها +لفوهة +لفيلة +لفيلدونج +لفيلم +لفيلمه +لفّا +لفّها +لقاء +لقاءات +لقاءاتنا +لقاءاته +لقاءاتي +لقاءه +لقاءها +لقاءً +لقاؤنا +لقائدهم +لقائمة +لقائنا +لقائه +لقائها +لقائهما +لقائي +لقات +لقاتلونا +لقاح +لقادة +لقادمين +لقارئ +لقارئه +لقاع +لقامت +لقب +لقبائل +لقباً +لقبر +لقبه +لقبور +لقبول +لقبوله +لقتال +لقتل +لقتله +لقتلها +لقتلهم +لقحت +لقد +لقدم +لقدمها +لقدوم +لقراءة +لقراءتها +لقرائنا +لقراراتها +لقراصنة +لقربه +لقربها +لقرحات +لقرص +لقرع +لقرناء +لقرون +لقرّائي +لقزم +لقسم +لقصة +لقصد +لقصر +لقصرها +لقصص +لقصف +لقصيدة +لقضاء +لقضايا +لقضاياهم +لقضــــية +لقضية +لقضيتك +لقطاء +لقطات +لقطاع +لقطب +لقطة +لقطع +لقلة +لقلت +لقلعة +لقلقي +لقلل +لقلمي +لقلوب +لقلوبهم +لقماش +لقمة +لقمري +لقن +لقناع +لقناعات +لقنني +لقنه +لقوا +لقواعد +لقوانين +لقوانينها +لقوة +لقول +لقوم +لقومه +لقوى +لقي +لقيا +لقيادة +لقياس +لقياسها +لقيام +لقيامه +لقيت +لقيتك +لقيته +لقيتها +لقيطا +لقيعان +لقيم +لقيماً +لقيمة +لقيه +لك +لكأنه +لكائن +لكائنات +لكابوس +لكابوسه +لكاتب +لكارثة +لكارلاباور +لكافة +لكان +لكانت +لكانط +لكبار +لكبر +لكبيرة +لكتاب +لكتابات +لكتاباته +لكتابة +لكتابتها +لكتابه +لكتب +لكتبه +لكتيب +لكتّاب +لكثر +لكثرة +لكثرتهم +لكثير +لكرامتهم +لكرة +لكررت +لكرستوفر +لكرمه +لكريستوفر +لكسب +لكسر +لكشف +لكشفه +لكـم +لكفيلة +لكل +لكلا +لكلام +لكلامها +لكلامٍ +لكلمة +لكلية +لكلِّ +لكم +لكمال +لكميات +لكن +لكنة +لكنت +لكنك +لكنكِ +لكننا +لكنني +لكنه +لكنها +لكنهم +لكنهما +لكنهّ +لكني +لكنيسة +لكنّ +لكنَّ +لكوادر +لكوارث +لكوبا +لكوكب +لكولمبس +لكون +لكونستانتا +لكونك +لكونه +لكونها +لكونهم +لكوني +لكي +لكيفية +لكيلا +لكِ +للآبار +للآتي +للآثار +للآخر +للآخرين +للآداب +للآراء +للآفات +للآلاف +للآلية +للآن +للآيات +للأب +للأبحاث +للأبد +للأبرياء +للأبناء +للأبواب +للأجسام +للأجفان +للأجهزة +للأجيال +للأحاديث +للأحافير +للأحداث +للأحفاد +للأحفورة +للأحكام +للأحلام +للأخ +للأخرى +للأخطاء +للأخطار +للأخلاف +للأخلاق +للأخير +للأدب +للأدباء +للأدنى +للأدوات +للأدوية +للأديب +للأذهان +للأذى +للأراضي +للأرانب +للأربعين +للأرشيف +للأرصاد +للأرض +للأرضيات +للأرق +للأرقام +للأرنب +للأرواح +للأرياف +للأزهر +للأسئلة +للأساتذة +للأساليب +للأسباب +للأسبوع +للأستاذ +للأسر +للأسرة +للأسطح +للأسعار +للأسف +للأسفار +للأسفل +للأسلوب +للأسماك +للأسمدة +للأسنان +للأسواق +للأسى +للأشجار +للأشخاص +للأشعة +للأشنانداني +للأشياء +للأصل +للأصوات +للأصول +للأضرحة +للأطباء +للأطفال +للأعداد +للأعرابي +للأعشاب +للأعصاب +للأعضاء +للأعلى +للأعمال +للأعمش +للأعين +للأفراد +للأفكار +للأفلام +للأفيال +للأقلام +للأقليات +للأقمشة +للأقوال +للأكاديمية +للأكراد +للأكسجين +للأكل +للألباني +للألعاب +للألف +للألم +للألواح +للأم +للأماكن +للأمام +للأمان +للأمانة +للأمة +للأمتعة +للأمراء +للأمراض +للأمريكيين +للأمطار +للأمل +للأمم +للأمن +للأمهات +للأمواج +للأموال +للأمور +للأمومة +للأمير +للأميركان +للأناشيد +للأنام +للأنبياء +للأندية +للأنسجة +للأنسنة +للأنشطة +للأنظمة +للأنفلونزا +للأنماط +للأنواع +للأهالي +للأهل +للأهمية +للأورام +للأوزان +للأوضاع +للأوقات +للأوقاف +للأول +للأولمباد +للأولى +للأيتام +للأيديولوجيا +للأيديولوجية +للإبحار +للإبداع +للإبداعات +للإبداعية +للإبقاء +للإبهار +للإجابة +للإجازة +للإجراءات +للإجهاض +للإحاطة +للإحتفال +للإحتقان +للإحساس +للإحصائيات +للإختلاطات +للإخوان +للإخوة +للإدارات +للإدخار +للإدريسي +للإدمان +للإذاعة +للإرشاد +للإرهاب +للإرهاق +للإزدحام +للإزعاج +للإسبان +للإستثمارات +للإستخدام +للإستزادة +للإستشفاء +للإسكان +للإسلام +للإسلاميين +للإسهاب +للإسهام +للإشارة +للإشعاع +للإصابة +للإصرار +للإصلاح +للإطلال +للإعاقة +للإعجاب +للإعدام +للإعفاء +للإعلام +للإعلاميين +للإعلان +للإفتاء +للإقامة +للإقراض +للإمارة +للإمام +للإمبراطورية +للإمتصاص +للإمساك +للإمكانات +للإناث +للإنتاج +للإنتان +للإنترنت +للإنجازات +للإنجيل +للإنذار +للإنسان +للإنسانية +للإنشاد +للإنفاق +للإنفجار +للإهمال +للإيجار +للإيدز +للإيقاع +للإيمان +للائتلاف +للابتعاد +للابقاء +للاتجار +للاتجاه +للاتجاهات +للاتحاد +للاتصال +للاتهام +للاثنين +للاجئين +للاجتراءات +للاجترار +للاجتياح +للاحتجاج +للاحتفاء +للاحتفاظ +للاحتفالات +للاحتقان +للاحتكاك +للاحتلال +للاحتمالات +للاحتياج +للاحتياجات +للاحـتفال +للاختبارات +للاختراق +للاختفاء +للاختلاج +للاختلاجات +للاختلاف +للاختمار +للاختيار +للاخر +للادخار +للارتباط +للارتزاق +للارتفاع +للارتقاء +للارتماء +للارتياب +للاستثمار +للاستثمارات +للاستجابة +للاستحمام +للاستحواذ +للاستخدام +للاستدفاء +للاستدلال +للاستراحة +للاسترزاق +للاستزادة +للاستسلام +للاستشارات +للاستشفاء +للاستصلاح +للاستعراب +للاستعراض +للاستعلامات +للاستعمار +للاستعمال +للاستفادة +للاستفسار +للاستقامة +للاستقرار +للاستلقاء +للاستماع +للاستمتاع +للاستمرار +للاستنباط +للاستهلاك +للاستيعاب +للاستيلاء +للاسم +للاشتراك +للاشنانداني +للاصابة +للاصفرار +للاطلاع +للاعتبار +للاعتبارات +للاعتداء +للاعتراف +للاعتقاد +للاعتقال +للاعتماد +للافتراس +للاقتراب +للاقتراح +للاقتصاد +للاقتلاع +للاكتئاب +للاكتتاب +للاكتفاء +للالتباس +للالتحاق +للالتفاف +للالتقاء +للالتهاب +للالتهابات +للامتداد +للامتصاص +للانبعاث +للانتساب +للانتشار +للانتظام +للانتقاد +للانتقاص +للانتقال +للانتقام +للانثى +للانحدار +للانخراط +للانخفاض +للاندلاع +للاندماج +للانزلاق +للانزواء +للانضمام +للانطلاق +للانفاق +للانفتاح +للانفجار +للانفجارات +للانفراد +للانفعالات +للانقراض +للانقسام +للانقضاض +للانقلابات +للاهتمام +للاوضاع +للبائع +للبابا +للبابوية +للباحث +للباحثين +للباس +للباصات +للباعة +للباكستان +للبامبو +للباندا +للباي +للببليوثيرابيا +للبتر +للبتراء +للبتروكيماويات +للبترول +للبحث +للبحر +للبحوث +للبخار +للبدائل +للبدو +للبرازيل +للبرامج +للبرجوازية +للبرميل +للبرنامج +للبرهان +للبروتين +للبروتينات +للبروفيسور +للبريد +للبس +للبسطاء +للبشر +للبشرة +للبشرية +للبطالة +للبطل +للبطولة +للبعثات +للبعثة +للبعض +للبعوض +للبعوضة +للبقا +للبقاء +للبقالة +للبقر +للبكتريا +للبلاد +للبلاذري +للبلازموديوم +للبلاستيك +للبلد +للبلدة +للبلدية +للبلعوم +للبناء +للبنائين +للبنات +للبنان +للبنايات +للبناية +للبنت +للبنك +للبنوك +للبني +للبنيان +للبنية +للبنين +للبوالب +للبول +للبيئة +للبيان +للبيانات +للبيانو +للبيت +للبيض +للبيع +للبيوت +للتأثير +للتأسيس +للتأكد +للتأمين +للتأهب +للتأويل +للتاريخ +للتبادل +للتباهي +للتبصر +للتثبيت +للتثقيف +للتجار +للتجارب +للتجارة +للتجاعيد +للتجدد +للتجديد +للتجربة +للتجسس +للتجعد +للتجوال +للتحالف +للتحامل +للتحايل +للتحديات +للتحديث +للتحذير +للتحرج +للتحرر +للتحري +للتحرير +للتحسس +للتحصيل +للتحقق +للتحقيق +للتحكم +للتحلل +للتحول +للتخريب +للتخزين +للتخصص +للتخصيص +للتخطيط +للتخفيف +للتخفّي +للتخلص +للتخلف +للتخمر +للتدخين +للتدرب +للتدريب +للتدريس +للتراث +للتراكتورات +للترانزستورات +للتربة +للتربية +للترجمان +للترجمة +للترخيص +للترفيه +للترقي +للتركات +للتركيز +للترميم +للترويج +للترويح +للتزلج +للتساؤل +للتساؤلات +للتسامح +للتستر +للتسجيلات +للتسلسل +للتسلية +للتسليع +للتسلّح +للتسوق +للتسوية +للتسويق +للتشاؤم +للتشبث +للتشخيص +للتشريع +للتشريعات +للتشكل +للتشمس +للتشنج +للتشوهات +للتصدى +للتصدير +للتصديق +للتصرف +للتصفية +للتصميم +للتصنيف +للتصور +للتصورات +للتصوير +للتضامن +للتضحية +للتضييق +للتطبيع +للتطبيق +للتطرف +للتطور +للتطورات +للتطوير +للتعاقد +للتعامل +للتعاون +للتعب +للتعبئة +للتعبير +للتعجيل +للتعداد +للتعدد +للتعديل +للتعدين +للتعذيب +للتعرض +للتعرف +للتعريف +للتعرّف +للتعصب +للتعلم +للتعليم +للتعويذة +للتعويض +للتفاعل +للتفاني +للتفاوض +للتفتيش +للتفسخ +للتفكير +للتفوق +للتقارب +للتقارير +للتقاعد +للتقاليد +للتقدم +للتقريب +للتقرير +للتقليل +للتقنيات +للتقنية +للتقوقع +للتقويم +للتقيد +للتكاثر +للتكامل +للتكرار +للتكنولوجيا +للتكوينات +للتكيف +للتكيّف +للتلاعب +للتلاميذ +للتلفزة +للتلفزيون +للتلوث +للتماثيل +للتماهي +للتمتع +للتمثيل +للتمرين +للتمزق +للتمسك +للتمكن +للتمويل +للتمييز +للتناقص +للتنبؤ +للتنبيه +للتنبُّؤ +للتندر +للتنس +للتنسيق +للتنصت +للتنصير +للتنضير +للتنظيم +للتنفس +للتنفيذ +للتنقل +للتنقيب +للتنمية +للتنوع +للتنوير +للتهنئة +للتو +للتواصل +للتوتر +للتوثيق +للتوجه +للتوجهات +للتوحيد +للتوراة +للتوسعات +للتوظف +للتوظيف +للتوعية +للتوفيق +للتوقف +للتي +للتّعرّف +للتّوقّف +للثاني +للثراء +للثروة +للثعلب +للثقافة +للثقب +للثقة +للثواب +للثوار +للثورة +للجائزة +للجاحظ +للجاذبية +للجاليات +للجالية +للجامع +للجامعات +للجامعة +للجانها +للجبهة +للجبيل +للجحيم +للجدال +للجدل +للجدلية +للجدية +للجذب +للجذر +للجذور +للجراثيم +للجراح +للجراحة +للجراحين +للجرح +للجريدة +للجزء +للجزأين +للجزيرة +للجسد +للجسم +للجسيمات +للجفاف +للجفن +للجلد +للجلوس +للجماعة +للجمال +للجماهير +للجمع +للجمعيات +للجمعية +للجمل +للجمهور +للجمهورية +للجميع +للجنة +للجنس +للجهات +للجهاد +للجهاز +للجهة +للجهل +للجهود +للجوائز +للجوانب +للجولف +للجيران +للجيش +للجيل +للجين +للجينوم +للجيوب +للجيولوجيا +للحئول +للحائط +للحاجب +للحاجة +للحاضر +للحاق +للحاكم +للحالات +للحالة +للحب +للحبل +للحبوب +للحث +للحج +للحجاب +للحجاج +للحجز +للحجم +للحجيج +للحد +للحدائق +للحداثة +للحديث +للحديد +للحديقة +للحرارة +للحراس +للحرب +للحرث +للحرف +للحركة +للحرم +للحروب +للحروف +للحريات +للحرية +للحزب +للحزبيين +للحزن +للحساسية +للحسن +للحشرات +للحشف +للحشيش +للحصاد +للحصان +للحصر +للحصول +للحضارة +للحظاتنا +للحظة +للحـد +للحـوافز +للحفاظ +للحق +للحقد +للحقل +للحقن +للحقيقة +للحقّ +للحكايات +للحكاية +للحكم +للحكماء +للحكومة +للحل +للحلف +للحلم +للحلول +للحلوى +للحم +للحمار +للحمام +للحماية +للحمل +للحملة +للحوادث +للحوار +للحواريين +للحواس +للحول +للحياة +للحيتان +للحيف +للحيلولة +للحيوان +للحيوانات +للخارج +للخالق +للخدمات +للخدمة +للخروج +للخريج +للخريجين +للخصخصة +للخضوع +للخط +للخطة +للخطر +للخطوبة +للخطوط +للخلاص +للخلاف +للخلافة +للخلايا +للخلف +للخلل +للخلية +للخليج +للخليفة +للخمود +للخناجر +للخواص +للخوف +للخيال +للخيالات +للخيامية +للخيبة +للخير +للخيل +للخيمي +للخيوط +للخيول +للدائن +للداخل +للداخلين +للدار +للدارس +للدارسين +للداعيات +للداعية +للدبابات +للدببة +للدبلوم +للدخان +للدخل +للدخول +للدراسات +للدراسة +للدراما +للدرجة +للدرس +للدعاية +للدعم +للدعوة +للدفاع +للدكان +للدكتور +للدكتوراه +للدكتورة +للدلالة +للدم +للدماء +للدمار +للدموع +للدميري +للدنيا +للدهشة +للدهون +للدواء +للدواب +للدوخة +للدودة +للدور +للدورة +للدول +للدولة +للديار +للديانات +للديك +للديمقراطية +للدين +للذئاب +للذات +للذاتي +للذاكرة +للذبح +للذرة +للذكر +للذكور +للذهاب +للذهب +للذهنية +للذوبان +للذود +للذين +للرأس +للرأسمالية +للرأي +للرأيين +للرؤساء +للرؤية +للرئتين +للرئيس +للرابطة +للراحة +للراحل +للراديو +للرازي +للراعي +للراكب +للراهبات +للرب +للربط +للربو +للرجال +للرجل +للرجلين +للرحلات +للرحلة +للرحيق +للرحيل +للرد +للرداءة +للرذيلة +للرسائل +للرسالة +للرسم +للرصاص +للرصاصة +للرصد +للرض +للرضا +للرضيع +للرعاية +للرفاهية +للرقابة +للرقة +للرقص +للرقصات +للركاب +للرواد +للرواية +للروح +للروسية +للرومانسية +للري +للرياح +للريادة +للرياضة +للرياضيات +للريب +للريبرتوار +للريح +للرُها +للزائر +للزائرين +للزبيدي +للزحف +للزرابي +للزراعة +للزرزور +للزعم +للزعنفة +للزعيم +للزفاف +للزكاة +للزمان +للزمكان +للزمن +للزنك +للزنوج +للزهرة +للزواج +للزوار +للزوال +للزورق +للزي +للزيارة +للزينة +للسؤال +للسائح +للسائحـين +للسائحين +للسائد +للسائل +للسابع +للساحة +للسادات +للسادة +للساسة +للساعات +للساعة +للسباحة +للسباق +للسبعينيات +للسجل +للسجن +للسجناء +للسجين +للسحور +للسخرية +للسرادق +للسرطان +للسطح +للسعادة +للسعة +للسعوديين +للسفارات +للسفر +للسفن +للسفير +للسكارى +للسكان +للسكة +للسكر +للسكن +للسلاجقة +للسلام +للسلطات +للسلطة +للسلطنة +للسلع +للسلف +للسلوك +للسلوكيات +للسماء +للسماح +للسمنة +للسموم +للسنة +للسنوات +للسهرة +للسود +للسودان +للسور +للسوفيات +للسوق +للسويد +للسياح +للسياحة +للسياحـة +للسيارات +للسيارة +للسياسات +للسياسة +للسيجار +للسيد +للسيدات +للسيدة +للسير +للسيرة +للسيطرة +للسيناريو +للسينما +للسينوباه +للسّنة +للسَّارين +للشؤون +للشئون +للشاب +للشارع +للشاطئ +للشاعر +للشاعرة +للشاي +للشباب +للشبكية +للشبهة +للشتاء +للشجرة +للشحن +للشحنات +للشخص +للشخصيات +للشخصية +للشدة +للشراء +للشرائح +للشراع +للشرب +للشرح +للشرطة +للشرطي +للشرعية +للشرفة +للشرق +للشركات +للشركة +للشروط +للشعاب +للشعارات +للشعب +للشعر +للشعراء +للشعوب +للشعوذة +للشعير +للشفاء +للشفقة +للشقاء +للشقق +للشك +للشكل +للشكلانية +للشمال +للشمس +للشهادة +للشهرة +للشهوة +للشواذ +للشواطئ +للشورى +للشوكولاتة +للشيخ +للشيخوخة +للشيرازيين +للشيوخ +للشيوعية +للصائمين +للصبي +للصبيان +للصحارى +للصحافة +للصحافيين +للصحة +للصحراء +للصحف +للصحفين +للصحيفة +للصداع +للصداقة +للصدر +للصراع +للصراعات +للصرف +للصعلوك +للصعود +للصعيد +للصف +للصفة +للصفدي +للصفوف +للصقور +للصلاة +للصلب +للصمت +للصناعات +للصناعة +للصهاينة +للصهيونية +للصواريخ +للصور +للصورة +للصوص +للصيادلة +للصيد +للصين +للصيوان +للضباب +للضباط +للضجيج +للضرب +للضرورة +للضفة +للضوء +للضوابط +للضياع +للضيافة +للضيف +للضيوف +للطائرات +للطائفين +للطابع +للطابق +للطاقة +للطالب +للطالبات +للطاهر +للطباعة +للطبري +للطبع +للطبعة +للطبقات +للطبيب +للطحالب +للطرب +للطرح +للطرف +للطرق +للطريق +للطريقة +للطعام +للطفرات +للطفرة +للطفل +للطفيل +للطلاءات +للطلاب +للطلب +للطلبة +للطناحي +للطوائف +للطوارئ +للطواف +للطول +للطيب +للطير +للطيران +للطيور +للطّالب +للظاهرة +للظروف +للظلام +للظهر +للظهور +للعائل +للعائلات +للعائلة +للعادة +للعار +للعاصمة +للعالم +للعالمية +للعالمين +للعام +للعامة +للعامل +للعاملين +للعب +للعبادة +للعبقري +للعبقريات +للعبقرية +للعبور +للعثمانيين +للعثور +للعجب +للعجز +للعدالة +للعدد +للعدسة +للعدل +للعدو +للعدوى +للعديد +للعذاب +للعراء +للعراق +للعراقي +للعرب +للعرج +للعرض +للعروبة +للعروض +للعزاء +للعزف +للعسل +للعش +للعشاء +للعشاق +للعشرين +للعصر +للعضو +للعضوية +للعطاء +للعطور +للعفش +للعقائد +للعقاب +للعقار +للعقارات +للعقارب +للعقل +للعلاج +للعلاقات +للعلاقة +للعلم +للعلماء +للعلوم +للعمادة +للعمارة +للعمالة +للعماني +للعمرة +للعمل +للعملاء +للعملات +للعملاق +للعملة +للعمى +للعميد +للعناكب +للعناية +للعنصر +للعنف +للعهد +للعواصف +للعواطف +للعوام +للعود +للعودة +للعولمة +للعيان +للعيش +للعين +للعينين +للعيون +للـ +للفئات +للفئة +للفتاة +للفتح +للفترة +للفتوى +للفتيات +للفحم +للفحوصات +للفرار +للفرجة +للفرح +للفرد +للفرص +للفرق +للفرقة +للفرنج +للفرنجة +للفروسية +للفروق +للفريق +للفساد +للفسطاط +للفصل +للفضاء +للفضائيات +للفضلات +للفطرة +للفعل +للفقراء +للفقمة +للفقهاء +للفكر +للفكرة +للفلاسفة +للفلسطينيين +للفلسفة +للفلكلور +للفليبين +للفن +للفنادق +للفنان +للفنانة +للفنانين +للفندق +للفنون +للفهم +للفوائد +للفوز +للفياجرا +للفيتامين +للفيتلمينات +للفيروس +للفيروسات +للفيزياء +للفيضانات +للفيلا +للفيلاريا +للفيلم +للقاء +للقاءات +للقائنا +للقاح +للقادرين +للقادم +للقادمين +للقارئ +للقارات +للقاري +للقاصدين +للقانون +للقاهرة +للقبائل +للقبض +للقبلات +للقبلية +للقبول +للقبيلة +للقتل +للقدر +للقدرة +للقدس +للقدم +للقدمين +للقرآن +للقراء +للقراءة +للقرار +للقراصنة +للقرب +للقربات +للقرحات +للقرحة +للقرد +للقرض +للقرم +للقرن +للقرى +للقرية +للقرّاء +للقسم +للقصبات +للقصة +للقصص +للقصور +للقصيدة +للقضاء +للقضبان +للقطاع +للقطاعات +للقطب +للقطرات +للقطن +للقطيعة +للقـا +للقلب +للقلق +للقلوب +للقماش +للقمح +للقنوات +للقوات +للقوانين +للقوة +للقول +للقوى +للقوي +للقيادة +للقياس +للقيام +للقيم +للكائن +للكائنات +للكاتب +للكاتبة +للكاثوليكية +للكارثة +للكارديوليبين +للكاريكاتير +للكاميرا +للكبار +للكبريت +للكتاب +للكتابة +للكتب +للكتل +للكتّاب +للكثير +للكثيرين +للكحلاوي +للكراهية +للكسر +للكشف +للكل +للكلام +للكلب +للكلس +للكلمات +للكلمة +للكلية +للكم +للكمبيوتر +للكميت +للكنائس +للكنيسة +للكهرباء +للكوارث +للكورنيش +للكوكائين +للكون +للكونجرس +للكويت +للكيان +للكيانات +للكيفية +للكيماويات +للكيمياء +للكينونة +للمأزق +للمؤتمر +للمؤتمرات +للمؤذن +للمؤسسات +للمؤسسة +للمؤلف +للمؤمن +للمؤمنين +للماء +للماجستير +للمادة +للمارة +للماضي +للمبادرة +للمبتدئين +للمبدع +للمبدعين +للمبرد +للمبررات +للمبرّد +للمبشر +للمبنى +للمبيد +للمبيدات +للمبيعات +للمتأمل +للمتابع +للمتابعة +للمتاجرة +للمتحف +للمتر +للمترجمين +للمتزوجين +للمتعة +للمتهم +للمتوفى +للمثقفين +للمجاهدين +للمجتمع +للمجتمعات +للمجرات +للمجرى +للمجعراتي +للمجلة +للمجلدات +للمجلس +للمجمع +للمجموعات +للمجموعة +للمحار +للمحاسبات +للمحاصيل +للمحاضر +للمحافظة +للمحاكم +للمحاكمة +للمحاماة +للمحبين +للمحتاجين +للمحلات +للمحيط +للمحيطين +للمخ +للمخاطية +للمختصين +للمخدرات +للمخرج +للمخزن +للمخصِّبات +للمخطوطات +للمخيلة +للمدارس +للمدة +للمدرسة +للمدرسين +للمدن +للمدنية +للمديرة +للمديرين +للمدينة +للمرء +للمرأة +للمراجعة +للمراحل +للمراقبة +للمراكب +للمراكز +للمربي +للمرة +للمرجانيات +للمرحلة +للمرحلتين +للمرحوم +للمرسم +للمرصد +للمرض +للمرضى +للمركب +للمركز +للمريض +للمزادات +للمزارعين +للمزايا +للمزيد +للمسألة +للمسئولين +للمساءلة +للمساجد +للمساحات +للمساحة +للمسارح +للمساعدات +للمساعدة +للمسافر +للمسافرين +للمساهمة +للمستثمر +للمستثمرين +للمستشرقة +للمستشفى +للمستعمر +للمستقبل +للمستهلكين +للمستوى +للمستويات +للمسجد +للمسدس +للمسرح +للمسكنات +للمسلسل +للمسلم +للمسلمات +للمسلمين +للمسمين +للمسنين +للمسيح +للمسيحية +للمشاة +للمشاركة +للمشاركين +للمشاريع +للمشاعر +للمشاكل +للمشاهد +للمشاهدين +للمشتركين +للمشروع +للمشروعات +للمشفقات +للمشكلة +للمشهد +للمشي +للمصابين +للمصادر +للمصارعين +للمصارف +للمصريات +للمصريين +للمصطلح +للمصعب +للمصلحة +للمصلين +للمصنع +للمضادات +للمضي +للمضيفات +للمطار +للمطارحات +للمطاردة +للمطالبة +للمطر +للمطرب +للمطربين +للمظاهر +للمظلوم +للمعادلات +للمعادن +للمعارضة +للمعارف +للمعاش +للمعاق +للمعاقين +للمعالجات +للمعالجة +للمعالم +للمعاملة +للمعاناة +للمعاهد +للمعاىير +للمعايير +للمعبد +للمعتزلة +للمعتصم +للمعتقدات +للمعتمرين +للمعدات +للمعدة +للمعدلات +للمعدَّل +للمعرض +للمعرفة +للمعركة +للمعري +للمعلم +للمعلمات +للمعلمة +للمعلمين +للمعلومات +للمعنى +للمعهد +للمعوّقات +للمعيدين +للمعيشة +للمفاهيم +للمفتاح +للمفترى +للمفتش +للمفردات +للمفكر +للمفهوم +للمقارنة +للمقاطعة +للمقامات +للمقاومة +للمقاييس +للمقبرة +للمقدسات +للمقعد +للمكاتب +للمكان +للمكانة +للمكاوي +للمكتب +للمكتبات +للمكتبة +للمكفوفين +للملابس +للملاحة +للملاريا +للملايين +للملتزمات +للملحمة +للملحن +للملك +للملوك +للمليارات +للممارسات +للممارسة +للممثل +للممر +للمملكة +للمناخ +للمنازل +للمناسبات +للمناسبة +للمناسك +للمناطق +للمناعة +للمنافذ +للمنافسة +للمناقشة +للمناهج +للمناورة +للمنتجات +للمنتجع +للمنتخبات +للمنتسبين +للمنزل +للمنشآت +للمنشأة +للمنطق +للمنطقة +للمنظرين +للمنفلوطي +للمنكوبين +للمنهج +للمهاجرين +للمهاري +للمهرجان +للمهمة +للمهند +للمواجهة +للمواد +للموارد +للمواصفات +للمواضعات +للمواطن +للمواطنين +للموافقة +للمواقع +للمواقف +للموانئ +للمواهب +للموت +للموج +للمودة +للمودودي +للموروث +للموسم +للموسوعة +للموسيقار +للموسيقى +للموسيقيين +للموصل +للموضوع +للموظف +للموظفين +للموقف +للموهبة +للموهوبين +للمياه +للميثاق +للميلاد +للنائم +للنادرة +للنادل +للنار +للناس +للناشئة +للنافورة +للناقد +للناقل +للناقلة +للنامي +للنبات +للنباتات +للنبي +للنتائج +للنتاج +للنثر +للنجاة +للنجاح +للنجم +للنجوم +للنجومية +للنحاس +للنحت +للنحر +للنحل +للنخب +للنخبة +للنرجسية +للنزاع +للنزاعات +للنزلاء +للنزوع +للنزيل +للنساء +للنسخ +للنسور +للنسيان +للنشء +للنشاط +للنشالين +للنشر +للنص +للنصر +للنصرانية +للنصوص +للنطاسي +للنطاق +للنظائر +للنظارات +للنظام +للنظر +للنظرة +للنظرية +للنظم +للنفاذ +للنفس +للنفوذ +للنقاد +للنقاش +للنقد +للنقص +للنقل +للنقود +للنكتة +للنمساوي +للنمط +للنمل +للنمو +للنهاية +للنهب +للنهر +للنهضة +للنهوض +للنوارس +للنوايا +للنوبات +للنور +للنوعين +للنوم +للنوى +للنيران +للنيل +للنَّدى +لله +للهاثهم +للهبوط +للهجات +للهجرات +للهجران +للهجرة +للهجمة +للهجوم +للهجين +للهدف +للهدوء +للهراوي +للهرم +للهروي +للهشيم +للهكتار +للهلاك +للهند +للهندسة +للهنود +للهواء +للهواية +للهوية +للهيئة +للهياج +للهيب +للهيدروجين +للهيمنة +للواحات +للواقدي +للواقع +للواقعة +للواقعية +للوالدين +للوتدة +للوثنية +للوجه +للوجهات +للوجود +للوجودية +للوحاتها +للوحة +للوحدات +للود +للوراثة +للورد +للوزارة +للوزمة +للوزير +للوسط +للوسن +للوصول +للوصوليين +للوضع +للوضوء +للوطن +للوظائف +للوعظ +للوفاء +للوفاة +للوفد +للوفود +للوفيات +للوقاية +للوقت +للوقف +للوقود +للوقوف +للولايات +للولاية +للون +للوهلة +للويس +لليابان +لليابس +لليافعين +لليبيا +لليرموك +لليسار +لليل +لليلة +لليلى +للينابيع +لليهود +لليوم +لليونسكو +لليونيسكو +للُعب +لم +لمأكل +لمؤتمر +لمؤسس +لمؤسسات +لمؤسسة +لمؤلفات +لمؤلفه +لمؤلفين +لمؤيد +لمئات +لما +لماء +لمادة +لماذا +لمارتن +لمارتي +لماري +لمالكي +لماما +لمانحين +لمبادئ +لمباشرة +لمبدأ +لمبررات +لمبعوث +لمبيد +لمبيدات +لمتابعة +لمتحف +لمتخذي +لمتطلبات +لمتعة +لمتعتها +لمتعددي +لمثقف +لمثل +لمجابهة +لمجاراة +لمجال +لمجتمعات +لمجتمعاتها +لمجتمعنا +لمجتمعها +لمجد +لمجرد +لمجلة +لمجلد +لمجلس +لمجمعات +لمجمل +لمجموعات +لمجموعة +لمجموعتك +لمجموعتي +لمجهوداته +لمجيد +لمح +لمحات +لمحادثتها +لمحاربة +لمحاصرة +لمحاصيل +لمحاضرات +لمحاضرة +لمحافظة +لمحاكم +لمحاكمة +لمحاولات +لمحاولة +لمحاولته +لمحب +لمحبي +لمحة +لمحت +لمحتها +لمحتويات +لمحتوياته +لمحدث +لمحدّدات +لمحصولي +لمحطات +لمحطته +لمحل +لمحلات +لمحلول +لمحمد +لمحمود +لمحنة +لمحو +لمخ +لمخاطر +لمخالفة +لمختبر +لمخترع +لمختلف +لمخصصات +لمخطوطات +لمخلوق +لمخيلتهم +لمد +لمداخلة +لمدافع +لمدة +لمدد +لمدرسة +لمدن +لمدى +لمدي +لمدينة +لمدينته +لمدّة +لمرأى +لمرات +لمراجعة +لمراحل +لمرارة +لمراسم +لمراعاة +لمرافق +لمراقبة +لمراكز +لمراوح +لمرة +لمرتادى +لمرتع +لمرحلة +لمرحلتين +لمرشحي +لمرض +لمرضه +لمرضهم +لمرضى +لمرفق +لمركب +لمركز +لمريض +لمريم +لمزارع +لمزاولة +لمزيد +لمس +لمسألة +لمسؤلين +لمسئولين +لمسائل +لمسائلَ +لمسات +لمساحات +لمساحيق +لمسار +لمساعدة +لمساعدتك +لمساعدتنا +لمساعدتها +لمساعدتهم +لمسافات +لمسافة +لمسافري +لمسالك +لمساندة +لمساندتها +لمساهماته +لمسايرة +لمسة +لمست +لمستخدميها +لمستفتٍ +لمستقبله +لمستكشف +لمستلزمات +لمسته +لمستودع +لمستوى +لمستويات +لمسح +لمسخ +لمسرح +لمسرحياتي +لمسرحية +لمسلم +لمسلمي +لمسه +لمسها +لمسيرة +لمسيرته +لمشاركة +لمشاركتنا +لمشاركتهم +لمشاريع +لمشاعر +لمشاعري +لمشاكل +لمشاكله +لمشاهد +لمشاهدة +لمشاهدتها +لمشاوي +لمشتركات +لمشروع +لمشروعات +لمشروعه +لمشروعها +لمشروعي +لمشكلة +لمشهد +لمشيئة +لمشيئتها +لمصادر +لمصادرة +لمصالح +لمصانع +لمصداقية +لمصر +لمصطفى +لمصطلح +لمصلحة +لمصلحتهم +لمصير +لمضمونه +لمضيق +لمطابقتها +لمطاحن +لمطالب +لمطالعة +لمطران +لمطربة +لمطربين +لمطوري +لمظاهر +لمع +لمعادلات +لمعادلة +لمعارفنا +لمعارك +لمعاصرين +لمعالجات +لمعالجة +لمعالم +لمعاناته +لمعانه +لمعاني +لمعاهدة +لمعاونة +لمعاوية +لمعاىير +لمعاينة +لمعايير +لمعت +لمعتنقي +لمعدل +لمعدن +لمعرض +لمعرفة +لمعرفتهم +لمعركة +لمعصيتهم +لمعضلات +لمعضلة +لمعظم +لمعلمي +لمعلوف +لمعنوياتهم +لمعنى +لمعهد +لمعيار +لمــتابعة +لمفاهيم +لمفاوضة +لمفردات +لمفكر +لمفكرين +لمفكريها +لمفهوم +لمقابلة +لمقار +لمقارنة +لمقاعد +لمقالة +لمقامه +لمقاومة +لمقاومته +لمقاييس +لمقبض +لمقتضى +لمقدرة +لمقر +لمقولة +لمقومات +لمقوماتها +لمكافحة +لمكافحتها +لمكامن +لمكان +لمكانة +لمكانته +لمكتب +لمكتبة +لمكتبه +لمكفوفي +لملء +لملابسات +لملاحقة +لملازمته +لملاقاة +لملامح +لملامحها +لملايين +لملتقي +لملعب +لملك +لملكة +لملمة +لملمت +لملمتها +لملوك +لملوّثات +لممارسات +لممارسة +لممارستها +لممارسى +لممارسي +لممتلكاتها +لمملكة +لمن +لمنابع +لمناجاة +لمناخ +لمنازل +لمناسبة +لمناشدتها +لمناطق +لمناظر +لمنافستها +لمناقشة +لمناهج +لمنتجات +لمنتجاتها +لمنتجي +لمنح +لمنحنى +لمنزل +لمنزله +لمنزلي +لمنصور +لمنطقة +لمنطقته +لمنظر +لمنظمة +لمنظومة +لمنظّف +لمنع +لمنعهم +لمنفعة +لمنهج +لمنهجي +لمهاجمة +لمهرجان +لمهمة +لمهمته +لمهنتك +لمهنتي +لمهندسي +لمواجهة +لمواجهته +لمواد +لموارد +لموارده +لمواسم +لمواصلة +لمواطنهم +لمواطنى +لمواطني +لمواطنيه +لمواقف +لمواكبة +لموت +لموجات +لموجوعي +لمورسكيين +لموسكو +لموسم +لموسيقى +لموضوع +لموضوعات +لموطئ +لموطن +لموظف +لموقف +لمياه +لميتة +لميزان +لميزانية +لميكروب +لميل +لمَ +لمّا +لمْ +لن +لنأخذ +لنأكل +لنؤكد +لنؤكّد +لنا +لناأنا +لنابعد +لنادل +لنادي +لناس +لناقة +لنبات +لنباتات +لنبتعد +لنبث +لنبحث +لنبدأ +لنبذ +لنبرة +لنبرهن +لنبوءة +لنتأمل +لنتأمّل +لنتائج +لنتابع +لنتبادل +لنتركها +لنتعرف +لنتن +لنتوقف +لنتيجة +لنجاح +لنجد +لنجدة +لنجله +لنجم +لنجيب +لنحسبه +لنحصل +لنحو +لنخبة +لنختبئ +لنختتم +لنداء +لنداءات +لندائي +لندخل +لندع +لندن +لندني +لندنية +لنذهب +لنراقب +لنرد +لنرى +لنزلاء +لنزلائه +لنزورها +لنزول +لنزولك +لنزولها +لنزيح +لنساء +لنسبة +لنستدلّ +لنستريح +لنستطيع +لنستمد +لنسهر +لنشأة +لنشاط +لنشاطه +لنشاهد +لنشر +لنشرتنا +لنشرها +لنشكل +لنص +لنصارى +لنصح +لنصرتها +لنصف +لنصل +لنصوص +لنضال +لنضحي +لنضع +لنضفي +لنضوجهم +لنطقنا +لنطل +لنظارات +لنظافة +لنظام +لنظامنا +لنظامي +لنظر +لنظرائهم +لنظرة +لنظريات +لنظرية +لنظم +لنعد +لنعرف +لنعطي +لنعود +لنعيش +لنفحات +لنفرش +لنفس +لنفسك +لنفسه +لنفسها +لنفسي +لنفسية +لنفهم +لنفوس +لنفي +لنقابة +لنقاش +لنقاط +لنقترب +لنقد +لنقدم +لنقص +لنقل +لنقلته +لنقول +لنكمل +لنكملْ +لنلتقط +لنلتقى +لنلتقي +لنلمح +لنمارس +لنمو +لنموذج +لنموه +لنموهم +لنناقش +لننام +لننتبه +لننتظر +لننتقل +لننطلق +لنهاية +لنهايتها +لنهج +لنهجها +لنهر +لنهري +لنهضة +لنواة +لنوازع +لنواصل +لنواياهم +لنوبات +لنوبل +لنودعها +لنوع +لنوعية +لنوم +لنومٍ +لنيران +لنيكولن +لنيل +لنَمْذَجة +لنُصْحها +له +لهؤلاء +لها +لهاتين +لهافانا +لهالة +لهاييتي +لهب +لهبوط +لهث +لهجات +لهجة +لهجته +لهجتهم +لهجتي +لهجمات +لهجوم +لهجَتْ +لهدأة +لهدر +لهدفين +لهدم +لهدمها +لهذا +لهذه +لهذين +لهزات +لهزيمة +لهفة +لهفتها +لهم +لهما +لهن +لهندسة +لهو +لهواء +لهواة +لهولندا +لهوليدي +لهوية +لهى +لهيئات +لهيئة +لهيب +لهيبتها +لهيكل +لهيمنة +لهيمنتها +لو +لواء +لوائح +لوائها +لواثقون +لواجهات +لواحد +لوادي +لوازم +لوازمهم +لواعج +لواقع +لوالد +لوالدتي +لوالدك +لوالده +لوالدها +لوالدى +لوالديك +لوالديه +لوباتشفسكي +لوبلان +لوبلولى +لوبين +لوت +لوتاه +لوتيليري +لوثائق +لوثر +لوثه +لوثها +لوجد +لوجدت +لوجدنا +لوجدناها +لوجه +لوجهات +لوجهة +لوجهي +لوجود +لوجودنا +لوجوده +لوجودها +لوجودهم +لوجودي +لوجوه +لوح +لوحا +لوحات +لوحاته +لوحاتهم +لوحاتي +لوحة +لوحته +لوحتي +لوحتين +لوحدة +لوحده +لوحدها +لوحدهم +لوحش +لوحظ +لوحظت +لودرميلك +لودفيج +لودفيكو +لورا +لورد +لوركا +لورنس +لوره +لورين +لوزات +لوزارة +لوزراء +لوزن +لوزير +لوس +لوسائل +لوسيون +لوسيونات +لوشة +لوصف +لوصول +لوصوله +لوصولي +لوضع +لوضعها +لوضعيات +لوضعيتها +لوطننا +لوطنها +لوظيفة +لوعة +لوفد +لوفرة +لوفود +لوفيلان +لوفين +لوقا +لوقائع +لوقت +لوقف +لوقود +لوقوع +لوكاش +لوكالات +لوكالة +لوكتبنا +لوكلاء +لوكيد +لولا +لولائي +لولاه +لولاية +لولبي +لولوج +لوليفه +لوليمة +لوليو +لوم +لوموند +لوميير +لون +لونان +لوناً +لونجة +لونجمان +لونه +لونها +لوني +لونية +لونين +لونًا +لونِها +لويد +لويز +لويزة +لويس +لويسفيل +لويلسون +لويندوز +لى +لي +ليأتي +ليأخذ +ليأكل +ليأكلوا +ليأمرهم +ليؤدي +ليؤدينها +ليؤسس +ليؤكد +ليؤهلنا +لياقة +ليال +ليالي +ليالينا +لياليّ +ليامن +ليباد +ليباعوا +ليبحث +ليبدأ +ليبدو +ليبرالى +ليبرالي +ليبرالية +ليبرتي +ليبرز +ليبرمان +ليبقى +ليبكوا +ليبمان +ليبنوا +ليبور +ليبي +ليبيا +ليبيات +ليبية +ليبيدات +ليبيعوها +لية +ليت +ليتأكد +ليتاح +ليتامى +ليتبناه +ليتبين +ليتجاوز +ليتحدث +ليتحلى +ليتحمل +ليتحملوا +ليتخذوهما +ليتخلص +ليتر +ليترجمها +ليترسب +ليتركوا +ليتزوج +ليتسع +ليتسنى +ليتطلّب +ليتعدى +ليتعرف +ليتعلم +ليتعلمن +ليتعلموا +ليتفادى +ليتقدم +ليتقوا +ليتك +ليتكدسوا +ليتل +ليتلاءم +ليتلقاه +ليتلو +ليتم +ليتماشى +ليتمتع +ليتمكن +ليتناولوا +ليتني +ليته +ليتها +ليتهم +ليتوانيا +ليتوبوا +ليتوحش +ليتولى +ليتَكِ +ليثبت +ليثجاو +ليجتمعوا +ليجد +ليجدوا +ليجدوه +ليجس +ليجسد +ليجعل +ليجعله +ليجعلوا +ليجعلوهم +ليجعلَ +ليجلسها +ليجمعوا +ليجهزوا +ليجيب +ليحارب +ليحافظ +ليحب +ليحتطب +ليحتفظ +ليحتوي +ليحثني +ليحدد +ليحزن +ليحصل +ليحضره +ليحضرها +ليحطم +ليحظى +ليحفظها +ليحقق +ليحك +ليحكم +ليحل +ليحمل +ليحول +ليحيل +ليحيى +ليخبره +ليخبرهم +ليختاروا +ليختفي +ليختلط +ليخرج +ليخرجها +ليخطر +ليخفي +ليخلطا +ليخلّصه +ليدخل +ليدرس +ليدرك +ليدعوهم +ليدفئ +ليدفعوا +ليدفن +ليدفنوه +ليدن +ليدون +ليدي +ليديا +ليدير +ليديره +ليذاكر +ليذبح +ليذكر +ليرأس +ليرة +ليرتاح +ليرد +ليرسلوا +ليرسم +ليرسمني +ليرصد +ليرقع +ليرقي +ليرمي +ليرميه +ليرهب +ليروا +ليروجها +ليروي +ليرى +ليرينيوس +ليريهم +ليزا +ليزجي +ليزداد +ليزدادَ +ليزر +ليزري +ليزرية +ليزور +ليزيح +ليزيدها +ليس +ليسأله +ليسألوا +ليسا +ليساعد +ليساعده +ليسافر +ليسانس +ليسبح +ليست +ليستا +ليستجم +ليستجيب +ليستحم +ليستر +ليستريح +ليستسلموا +ليستطيع +ليستعر +ليستعرض +ليستعيرها +ليستقر +ليستقروا +ليستقي +ليستكشف +ليستكمل +ليستمتعوا +ليستمد +ليستمر +ليستنزفها +ليستوطنوا +ليستولي +ليسجل +ليسد +ليسرد +ليسرق +ليســــت +ليسهل +ليسوا +ليش +ليشاركوننا +ليشاهدوا +ليشبعوا +ليشتري +ليشرب +ليشعر +ليشفع +ليشق +ليشقوا +ليشكل +ليشكلا +ليشمل +ليشهدوا +ليشير +ليشْحن +ليصبح +ليصطحب +ليصعد +ليصل +ليصلوا +ليصنع +ليصير +ليضخّم +ليضرب +ليضع +ليضعه +ليضعها +ليضعوا +ليضعوها +ليضفي +ليضيف +ليضيق +ليطالع +ليطبق +ليطفو +ليطل +ليطلق +ليطلقوا +ليطهر +ليطيح +ليطيل +ليظل +ليظهر +ليظهره +ليعاد +ليعالج +ليعالجوه +ليعاود +ليعبدون +ليعبر +ليعتمد +ليعتمدوا +ليعجب +ليعدل +ليعرض +ليعرف +ليعرفن +ليعرفنا +ليعطينا +ليعقبه +ليعلق +ليعلم +ليعلموا +ليعلن +ليعلنا +ليعمل +ليعملا +ليعملوا +ليعود +ليعيد +ليعيش +ليعيشوا +ليعينك +ليفاجأ +ليفارق +ليفتح +ليفر +ليفربول +ليفرض +ليفروا +ليفزعه +ليفنى +ليفهم +ليفي +ليقابلوا +ليقاوم +ليقبض +ليقبل +ليقبلها +ليقتبسوا +ليقترب +ليقتفي +ليقتل +ليقتله +ليقتلوا +ليقدم +ليقدموا +ليقرءوا +ليقضي +ليقطع +ليقف +ليقم +ليقمع +ليقول +ليقولوا +ليقوم +ليقوموا +ليقيم +ليكتب +ليكتسح +ليكتشف +ليكتشفها +ليكتشفوا +ليكسبها +ليكمل +ليكن +ليكون +ليكونوا +ليل +ليلا +ليلاً +ليلة +ليلةٍ +ليلتان +ليلتحق +ليلتقط +ليلتقطوا +ليلته +ليلتهمه +ليلتي +ليلتين +ليلحقوا +ليلد +ليلعبا +ليلفنا +ليلقوا +ليلقى +ليلقي +ليله +ليلى +ليلي +ليلياً +ليلية +ليما +ليمارس +ليمان +ليمثل +ليمفوما +ليملأوها +ليمنحنا +ليمنع +ليمنعوك +ليموزين +ليمون +ليميز +لين +لينا +ليناس +لينال +لينام +لينتج +لينتزعوا +لينتظروا +لينتظم +لينتهي +لينجز +ليندي +لينذر +لينزل +لينسي +لينشئوا +لينضما +لينظر +لينظم +لينظموا +لينعم +لينفق +لينقذ +لينقضُ +لينقل +لينكولن +لينمو +لينياس +لينير +لينين +ليه +ليها +ليهاجر +ليهدم +ليو +ليواجه +ليواجهن +ليواسي +ليواصل +ليوجهوا +ليودعني +ليوسف +ليوصله +ليوضع +ليوفر +ليوفقا +ليوقف +ليوم +ليون +ليونارد +ليوناردو +ليونور +ليونيد +ليوهم +ليُحكم +ليُصدَّر +ليّ +ليّن +ليَّ +لَمْ +لَهُمْ +لُعب +لُمَعٌ +لِتَعَارَفُوا +لِما +لِمَن +م +مآثر +مآثرنا +مآذنها +مآرب +مآس +مآسي +مآكل +مأثرة +مأثور +مأثورًا +مأخذه +مأخذي +مأخوذا +مأخوذاً +مأخوذة +مأخوذين +مأدبة +مأرب +مأزق +مأزقا +مأزقاً +مأزقه +مأساة +مأساته +مأساوي +مأساويا +مأساوية +مأساويًا +مأسدة +مأسورة +مأكولات +مأكولاتنا +مأكولاً +مألوف +مألوفا +مألوفة +مأمن +مأمورية +مأمون +مأمونة +مأمونية +مأوى +مؤاتية +مؤامرة +مؤامرتهم +مؤتلف +مؤتمر +مؤتمرا +مؤتمرات +مؤتمراته +مؤتمراً +مؤتمرًا +مؤتمن +مؤثر +مؤثرا +مؤثرات +مؤثراتهم +مؤثراً +مؤثرة +مؤثرين +مؤثّرة +مؤثِّراً +مؤخرا +مؤخراتهم +مؤخراً +مؤخرة +مؤخرًا +مؤد +مؤداها +مؤدبة +مؤديا +مؤدية +مؤدّاها +مؤذيا +مؤذياً +مؤذية +مؤرخ +مؤرخا +مؤرخهم +مؤرخو +مؤرخي +مؤسس +مؤسسا +مؤسسات +مؤسساتنا +مؤسساً +مؤسسة +مؤسسته +مؤسستها +مؤسستين +مؤسسها +مؤسسوها +مؤسسي +مؤسسية +مؤسسيه +مؤسسيها +مؤسسًا +مؤشر +مؤشرا +مؤشرات +مؤشراتهما +مؤشراً +مؤشرٌ +مؤشِّراً +مؤصّلاً +مؤطرا +مؤقت +مؤقتا +مؤقتاً +مؤقتة +مؤقَّت +مؤكد +مؤكدا +مؤكدة +مؤكدين +مؤكدًا +مؤكسج +مؤكسدة +مؤكّدة +مؤلف +مؤلفا +مؤلفات +مؤلفاتنا +مؤلفاته +مؤلفاتهم +مؤلفاتي +مؤلفاً +مؤلفة +مؤلفتين +مؤلفه +مؤلفها +مؤلفون +مؤلفوها +مؤلفين +مؤلفيه +مؤلفًا +مؤلم +مؤلما +مؤلماً +مؤلمة +مؤمن +مؤمناً +مؤمنة +مؤهبة +مؤهل +مؤهلا +مؤهلات +مؤهلاته +مؤهلاتها +مؤهلاً +مؤهلة +مؤهلتان +مؤهلين +مؤهّل +مؤيد +مؤيدا +مؤيدوها +مئات +مئة +مئتى +مئذنة +مئزره +مئونة +مئوية +مئويّ +ما +ماء +ماءها +ماءً +ماأزال +ماأطلقت +ماؤه +ماإذا +مائة +مائتا +مائتى +مائتي +مائتين +مائدة +مائل +مائلة +مائها +مائى +مائي +مائياً +مائية +ماالتوصيات +ماالذي +مابقيت +مابين +مات +ماتا +ماتت +ماتر +ماترهورن +ماتلبث +ماتو +ماتوا +ماتيس +ماثل +ماثلا +ماثلاً +ماثلة +ماجاس +ماجد +ماجدة +ماجستير +مادام +مادامت +ماداموا +مادة +مادته +مادتي +مادح +مادمت +مادمنا +مادون +مادي +ماديا +مادياً +مادية +ماديًا +ماذا +مار +ماراثون +مارايني +مارةً +مارتن +مارتي +مارجالا +مارجرجس +مارجريت +مارد +مارس +مارست +مارسته +مارستُها +مارسوا +مارسيل +مارك +ماركة +ماركت +ماركتها +ماركس +ماركسياً +ماركسية +ماركو +ماركوس +ماركيز +مارلين +مارون +ماري +ماريا +ماريانو +ماريلا +ماريلاند +مارين +مارينا +ماريو +ماريي +مازال +مازالت +مازالتا +مازالوا +مازلت +مازلنا +مازن +ماساتشوستس +ماساشوسيتس +ماسانشوستش +ماسة +ماستركارد +ماسح +ماسحًا +ماسك +ماسكين +ماسويه +ماسيبو +ماسيموديوتي +ماسّة +ماشاء +ماشيا +ماشياً +ماص +ماصدرت +ماض +ماضون +ماضي +ماضية +ماضينا +ماضيه +ماضيها +ماضيهم +ماضيين +ماضٍ +ماطبق +ماعت +ماعدا +ماعداه +ماعداهم +ماعرف +ماعز +ماعوز +ماعية +مافيها +ماقبل +ماقراءات +ماقلت +ماقلته +ماك +ماكبث +ماكجل +ماكدونالدز +ماكرة +ماكسون +ماكسويل +ماكفرلن +ماكفيه +ماكو +ماكول +ماكينات +ماكينة +مال +مالا +مالاما +مالاً +مالبث +مالت +مالتوس +مالحا +مالحاً +مالحة +مالطا +مالطية +مالقا +مالك +مالكة +مالكم +مالكها +مالكولم +مالكوم +مالكون +مالكي +مالم +مالنا +ماله +مالها +مالي +مالية +ماليزي +ماليزيا +ماليكون +ماليًا +ماليًّا +ماما +مامدى +ماملا +مانجو +مانحاً +مانديل +مانديلا +مانشتات +مانشر +مانشستر +مانع +مانعة +مانعين +مانلي +مانهايم +مانويل +ماني +مانيتوبا +مانيللا +ماهان +ماهذا +ماهر +ماهرا +ماهرة +ماهم +ماهو +ماهي +ماهية +ماهيته +ماهيدول +ماي +ماياكوفسكي +مايتردد +مايثار +مايجب +مايجرى +مايحدث +ماير +مايرز +مايزال +مايزرسكويب +مايزيد +مايسمى +مايشاهد +مايشبه +مايشي +مايصادف +مايعحبه +مايقال +مايقدمه +مايقرب +مايكروباص +مايكروسوفت +مايكفل +مايكل +مايكوبلاسما +مايلي +مايمكن +ماينمي +مايو +مايوصي +مب +مباحا +مباحث +مباحثات +مبادئ +مبادئه +مبادئها +مبادرات +مبادرة +مباراة +مبارزات +مبارك +مباركا +مباركة +مباركته +مباريات +مباشر +مباشرا +مباشراً +مباشرة +مباشرةً +مباشرًا +مبالية +مبان +مبانى +مباني +مبانيها +مباهج +مبتدأ +مبتدئ +مبتدئا +مبتدئاً +مبتدئة +مبتذلة +مبتسم +مبتسما +مبتسماً +مبتعدا +مبتعدة +مبتكر +مبتكرة +مبتكرًا +مبتلى +مبتهجا +مبتهجاً +مبتهجًا +مبتور +مبتورة +مبثوثة +مبجل +مبحث +مبحثها +مبحلقا +مبحوحا +مبخرة +مبدأ +مبدؤها +مبدئه +مبدئياً +مبدئية +مبدع +مبدعا +مبدعاً +مبدعة +مبدعها +مبدعون +مبدعين +مبدعينا +مبدلا +مبرحة +مبرد +مبرر +مبررا +مبررات +مبررة +مبررها +مبرمج +مبرمجا +مبسط +مبسطة +مبسّطة +مبشر +مبشرا +مبشراً +مبشرة +مبطنة +مبطونة +مبعث +مبعثرة +مبعثه +مبعدا +مبعدة +مبعوث +مبعوثة +مبعوثًا +مبقية +مبكر +مبكرا +مبكراً +مبكرة +مبكرًا +مبكّر +مبكّراً +مبللا +مبللة +مبنى +مبني +مبنيا +مبنياً +مبنية +مبنيً +مبهرة +مبهم +مبهمة +مبهمًا +مبهوتاً +مبهورا +مبهوراً +مبهورين +مبيد +مبيدات +مبيعا +مبيعات +مبيعاتها +مبيناً +مت +متآكل +متأبطا +متأتٍ +متأثر +متأثرا +متأثراً +متأثرة +متأثرون +متأخر +متأخرا +متأخرة +متأخرين +متأخرًا +متأسيًا +متأففًا +متأكد +متأكدا +متأكدة +متأكدون +متأكدين +متألق +متألقا +متألقة +متأملا +متأملاً +متأملة +متأنيا +متأنية +متأهبا +متابع +متابعة +متابعتك +متابعته +متابعتها +متابعتي +متابعيه +متاجر +متاح +متاحا +متاحاً +متاحة +متاحف +متاريس +متاع +متاعا +متاعب +متاعبه +متاعبها +متاعه +متانة +متاهات +متاهة +متاهته +متاهْ +متبادل +متبادلة +متباطئاً +متباعدة +متباعدتين +متباين +متبايناً +متباينة +متباينو +متبتلة +متبرمة +متبع +متبعة +متبعين +متبلات +متبلور +متبلّدة +متبنية +متتابعة +متتاليات +متتالية +متتاليتين +متتبعا +متثاقلة +متجانس +متجانسة +متجاوبة +متجاورة +متجاوزا +متجاوزاً +متجاوزة +متجدد +متجددا +متجددة +متجدّدة +متجر +متجردة +متجردًا +متجره +متجمعاً +متجه +متجها +متجهة +متجهم +متجهون +متجهين +متجهًا +متجولا +متحاشياً +متحجبات +متحجبتين +متحجر +متحدة +متحدث +متحدثاً +متحدثة +متحديا +متحدين +متحديه +متحرج +متحرر +متحررة +متحررين +متحرك +متحركاً +متحركة +متحركين +متحرّك +متحسسين +متحصنة +متحضر +متحضرون +متحـيز +متحف +متحفاً +متحفكم +متحفية +متحفّز +متحلقات +متحمسة +متحولة +متحوِّلاً +متحيز +متخذا +متخذين +متخشبة +متخصص +متخصصا +متخصصاً +متخصصة +متخصصتين +متخصصين +متخصصًا +متخطياً +متخفيا +متخفية +متخلف +متخلفاً +متخلفة +متخلفين +متخلّفاً +متخلّفة +متخلّفين +متخيلا +متداخلا +متداخلان +متداخلة +متداعية +متداولة +متدحرجا +متدربا +متدرجاً +متدفقة +متدن +متدني +متدنية +متدينا +متدينة +متدينون +متدينًا +متذرعة +متذكرا +متذمراً +متر +مترا +مترابطة +مترات +مترادفان +مترادفتين +مترادفين +متراصة +مترافقا +مترافقاً +مترافقة +متراكبة +متراكمة +مترامية +متران +متراً +متربة +متربصون +متربعين +مترتبة +مترجم +مترجما +مترجماً +مترجمة +مترجمه +مترجمو +مترجمي +مترجمين +مترجميها +متردد +مترددا +مترددة +مترددين +متردم +مترسبة +مترصّد +مترع +مترفة +مترق +مترقبة +مترقرق +متركّزاً +مترملة +مترهلا +متروكة +متري +متريس +مترين +مترًا +متزاحمات +متزامنا +متزامناً +متزايد +متزايداً +متزايدة +متزمتة +متزن +متزنة +متزوج +متزوجات +متزوجة +متزوجون +متساءلا +متسائلا +متسائلاً +متسائلة +متسابقا +متسارع +متسارعة +متساهلة +متساو +متساوون +متساويات +متساوية +متساوين +متسببتين +متسخة +متسربلون +متسع +متسعة +متسقا +متسقة +متسلقاً +متسلل +متسممة +متسمّراً +متسوق +متسولة +متسّع +متشائم +متشائماً +متشائمة +متشابكةَ +متشابكي +متشابه +متشابهات +متشابهة +متشابهةٍ +متشبعًا +متشدد +متشربا +متشربات +متشعب +متشوق +متصادمة +متصارعة +متصاعدا +متصل +متصلة +متصوراً +متصوفة +متضاربة +متضامنة +متضامنين +متضايق +متضايقا +متضخم +متضرر +متضرع +متضمّنًا +متطابقة +متطايرة +متطرفة +متطرفي +متطرفين +متطرّفة +متطفل +متطلبات +متطلباتها +متطلباتهم +متطلعاً +متطلعة +متطور +متطورة +متطوعان +متطوعون +متطوّر +متطوّرة +متظاهر +متع +متعادل +متعادلان +متعادلتان +متعاديتين +متعارضان +متعارضين +متعارف +متعاطفون +متعاطي +متعاقبة +متعاكسان +متعاكسة +متعاكستان +متعال +متعاملاً +متعانقًا +متعاونون +متعاونين +متعايشة +متعب +متعبا +متعبة +متعبين +متعة +متعته +متعثرة +متعجبا +متعجبون +متعجرفة +متعجلة +متعجِّلة +متعدد +متعددا +متعددة +متعددو +متعرج +متعرجة +متعسفة +متعصّبة +متعطرون +متعطش +متعطشة +متعطشين +متعطلين +متعلق +متعلقا +متعلقاً +متعلقة +متعلقًا +متعلم +متعلمة +متعمدا +متعمداً +متعمدة +متعمدين +متعمّدا +متعمّدين +متعنت +متعهد +متعوداً +متفائل +متفائلا +متفاعلا +متفاعلة +متفاوت +متفاوتاً +متفاوتة +متفتحة +متفجرا +متفرج +متفرفة +متفرقا +متفرقة +متفرقين +متفرّدة +متفرّقة +متفق +متفقا +متفقة +متفوق +متفوقة +متفوِّقة +متقابلتان +متقاربان +متقاربة +متقاطعة +متقاطعةً +متقاعد +متقد +متقدا +متقدة +متقدم +متقدما +متقدماً +متقدمة +متقدّمة +متقززا +متقشّفة +متقطع +متقطعة +متقطعًا +متقعرة +متقلّب +متقن +متقنة +متقوص +متكئا +متكئة +متكاتفة +متكاسلة +متكافئة +متكامل +متكاملا +متكاملان +متكاملاً +متكاملة +متكاملين +متكرر +متكرراً +متكررة +متكلم +متكلما +متكوما +متلألئاً +متلألئة +متلاحق +متلاحقة +متلازمات +متلازمان +متلازمة +متلازمين +متلازمًا +متلاصقة +متلاطم +متلامحة +متلبدة +متلبس +متلبسا +متلبساً +متلبسة +متلبّسة +متلذذا +متلصص +متلعثما +متلفّعة +متلقيا +متلهف +متلهفاً +متماثلا +متماثلة +متماهيا +متماوجة +متمتعين +متمثل +متمثلا +متمثلاً +متمثلة +متمثّلاً +متمحوراً +متمدد +متمدن +متمرد +متمردا +متمردة +متمرس +متمسكا +متمسكاً +متمسكة +متمكنا +متململا +متملّك +متممان +متمنيا +متمنين +متميز +متميزا +متميزاً +متميزة +متميزًا +متميّز +متميّزة +متن +متناثراً +متناثرة +متناسبا +متناسبة +متناسقة +متناسيا +متناسين +متناظر +متنافران +متنافرة +متناقصة +متناقضات +متناقضة +متنام +متنامية +متناه +متناهية +متناول +متناولهم +متنبها +متنبّهاً +متنزه +متنزها +متنصتاعلى +متنصرا +متنصرة +متنفسا +متنفساً +متنقلا +متنقلاً +متنكرا +متنها +متنهدا +متنورة +متنوع +متنوعا +متنوعة +متنوعون +متنوِّعة +متهالكة +متهجداً +متهدج +متهدلة +متهكما +متهكمة +متهم +متهما +متهمة +متهيجاً +متهّماً +متوائم +متواتر +متواترة +متوارث +متوارثة +متواز +متوازن +متوازناً +متوازنة +متوازية +متوازيين +متواصل +متواصلا +متواصلاً +متواصلة +متواضع +متواضعا +متواضعاً +متواضعة +متواضعًا +متوافر +متوافرا +متوافرة +متوافقا +متوافقاً +متوافقة +متوافقةً +متواليات +متوالية +متوترا +متوترة +متوثبة +متوجا +متوجة +متوجةً +متوجسا +متوجع +متوجها +متوجَّسًا +متوجَّهًا +متوحدة +متوحشة +متوحلون +متوذما +متوذمة +متورط +متورطاً +متورطتين +متوسط +متوسطة +متوسطي +متوسطية +متوضع +متوعدا +متوفر +متوفرة +متوقدتان +متوقع +متوقعا +متوقعاً +متوقعة +متوقفة +متولي +متون +متوهج +متوهماً +متى +متي +متيقظ +متيقنا +متيقنة +متيم +متيمنا +متين +متينا +متينة +متيّم +متّسعة +متّصل +متَّزن +متُّ +مثا +مثابة +مثار +مثاراً +مثال +مثالا +مثالاً +مثاله +مثالي +مثاليا +مثاليات +مثالية +مثانة +مثبت +مثبتا +مثبتة +مثبطات +مثبطاً +مثبطة +مثرثرات +مثريًا +مثقف +مثقفات +مثقفة +مثقفي +مثقفين +مثقلات +مثقلاً +مثقلة +مثل +مثلا +مثلاً +مثلت +مثلث +مثلثة +مثلجة +مثلك +مثلكم +مثلكِ +مثلما +مثلنا +مثله +مثلها +مثلهم +مثلهن +مثلوا +مثلومة +مثلي +مثلُ +مثمر +مثمراً +مثمرة +مثمّن +مثنويته +مثنى +مثواه +مثوى +مثير +مثيرا +مثيرات +مثيراً +مثيرة +مثيرًا +مثيل +مثيلا +مثيلاتها +مثيلاً +مثيلتها +مثيله +مثَل +مثّل +مثّلت +مثَّل +مثَّلت +مج +مجار +مجاراة +مجازا +مجازر +مجازي +مجازيا +مجازياً +مجازية +مجازين +مجاعة +مجال +مجالا +مجالات +مجالاتها +مجالاتهما +مجالاً +مجالس +مجالسة +مجالسه +مجالسهم +مجالنا +مجاله +مجالها +مجالي +مجامع +مجاملاً +مجاملة +مجاملته +مجاميع +مجانا +مجاناً +مجاني +مجانيا +مجانياً +مجانية +مجاهد +مجاهدا +مجاورة +مجايليه +مجبرة +مجبرون +مجبرين +مجبورا +مجبوراً +مجبولاً +مجبولون +مجتاحة +مجترحا +مجتماعاتهم +مجتمع +مجتمعا +مجتمعات +مجتمعاتنا +مجتمعاتها +مجتمعاتهم +مجتمعاً +مجتمعة +مجتمعنا +مجتمعه +مجتمعها +مجتمعهم +مجتمعية +مجتمعين +مجتمعيًّا +مجتهدًا +مجثمه +مجج +مجحف +مجد +مجدب +مجدد +مجددا +مجدداً +مجددة +مجددي +مجدنا +مجده +مجدها +مجدو +مجدولة +مجدي +مجدية +مجدّدة +مجرات +مجراه +مجرب +مجرة +مجرتنا +مجرد +مجردة +مجردين +مجرم +مجرمين +مجروحين +مجرى +مجريات +مجرّد +مجرَّما +مجزأ +مجزرة +مجزياً +مجزية +مجزّأ +مجزَّأ +مجسات +مجسمات +مجسمة +مجسّاتها +مجسّداً +مجفف +مجلات +مجلة +مجلتا +مجلتنا +مجلته +مجلتي +مجلتين +مجلد +مجلدا +مجلدات +مجلداته +مجلدان +مجلده +مجلدين +مجلدٍ +مجلس +مجلسان +مجلساً +مجلسه +مجلسها +مجلياً +مجلّة +مجلّتها +مجمع +مجمعات +مجمعاتها +مجمعاً +مجمعة +مجمعها +مجمل +مجملة +مجملها +مجموع +مجموعات +مجموعاته +مجموعاتهم +مجموعاتي +مجموعة +مجموعتك +مجموعتكم +مجموعته +مجموعتها +مجموعتي +مجموعتين +مجموعه +مجموعها +مجموعهما +مجمّداً +مجمَّداً +مجنزرة +مجنون +مجنونة +مجني +مجهداً +مجهدة +مجهري +مجهرية +مجهزا +مجهزة +مجهود +مجهودات +مجهوداً +مجهول +مجهولا +مجهولاً +مجهولة +مجهوله +مجهولون +مجوهرات +مجوهراتها +مجوَّفة +مجيء +مجيئك +مجيئه +مجيئهم +مجيئي +مجيب +مجيباً +مجيد +مجيدا +مجيداً +مجيدي +مجيلس +مجّاناً +مح +محابر +محاذرا +محاذية +محاذير +محاذيًا +محارب +محاربا +محارباً +محاربة +محاربته +محاسب +محاسن +محاسنه +محاسنها +محاصر +محاصرا +محاصرة +محاصرًا +محاصيل +محاصيلنا +محاصيلهم +محاضر +محاضرا +محاضرات +محاضراته +محاضراً +محاضرة +محاضرته +محاضرتي +محاضرتين +محاضرًا +محاط +محاطا +محاطاً +محاطة +محافظ +محافظات +محافظاً +محافظة +محافظته +محافظتها +محافظًا +محافل +محاكاة +محاكم +محاكمة +محاكمته +محاكمتهم +محال +محالة +محاليل +محاميا +محامياً +محاه +محاور +محاورة +محاوره +محاولا +محاولات +محاولاتنا +محاولاته +محاولاتها +محاولاتهم +محاولاً +محاولة +محاولته +محاولتهم +محاولين +محايدا +محايداً +محايدة +محايدين +محب +محبا +محباً +محبب +محببة +محبة +محبت +محبتي +محبذ +محبطا +محبو +محبوبة +محبوسا +محبوسة +محبي +محبًا +محبّة +محبّةً +محبًّا +محت +محتاج +محتاجا +محتاجاً +محتاجين +محتار +محتاراً +محتال +محتجا +محتجباً +محتجة +محتدم +محتدمة +محترف +محترفا +محترفون +محترفين +محترم +محترما +محترمة +محتشد +محتشمة +محتفظا +محتفظاً +محتفظة +محتقرتان +محتلا +محتلة +محتلين +محتمل +محتملا +محتملة +محتواها +محتومة +محتوى +محتويات +محتوياتها +محجا +محجر +محجريهما +محجوب +محجوبة +محجوزة +محد +محدبة +محدث +محدثا +محدثاً +محدثة +محدثتي +محدثنا +محدثه +محدثي +محدد +محددا +محددات +محدداً +محددة +محددون +محدود +محدودا +محدوداً +محدودبة +محدودة +محدودي +محدودية +محدّثي +محدّد +محدّداً +محذرا +محذراً +محذِّرة +محراب +محرجاً +محرر +محررا +محررات +محرراً +محررة +محرز +محرضا +محرضة +محرفة +محرقة +محرك +محركات +محركاتها +محركاً +محركة +محركين +محرم +محرمة +محروثة +محروقة +محروم +محروما +محروماً +محرومين +محرّضة +محرّك +محرّكات +محرّكة +محرّكها +محزن +محزنا +محسسة +محسن +محسوب +محسوباً +محسوبة +محسود +محسوس +محسوسا +محسوسة +محسّنة +محصلة +محصلي +محصنة +محصور +محصورا +محصوراً +محصورة +محصول +محصولاً +محصولها +محصولي +محصّلة +محصّن +محض +محضراً +محضره +محضن +محط +محطات +محطاتنا +محطاً +محطة +محطتان +محطتنا +محطته +محطتي +محظور +محظورا +محظورات +محظورة +محظوظاً +محظوظة +محـافظة +محـترفى +محـطة +محـققة +محـل +محـلياً +محفزا +محفزة +محفل +محفور +محفورة +محفوظ +محفوظة +محفوفًا +محقة +محقق +محققا +محققاً +محققة +محققي +محقن +محقين +محك +محكم +محكما +محكمة +محكوما +محكومة +محكومون +محل +محلا +محلات +محلاً +محلة +محلقا +محلقاً +محلقة +محلل +محللا +محللاً +محللون +محله +محلها +محلول +محلي +محليا +محلياً +محلية +محليين +محليًا +محليًّا +محلّ +محلّف +محلّق +محلَّ +محمد +محمدأبو +محمدا +محمدجمال +محمدراسم +محمدصادق +محمل +محملا +محملاً +محملة +محملقة +محمود +محمودة +محمول +محمولة +محموم +محموما +محمومة +محمي +محميات +محمية +محمّلاً +محمّلة +محنة +محنته +محنتي +محنطاً +محو +محوا +محواً +محور +محورا +محوري +محورية +محوه +محوها +محوَّرَة +محير +محيرة +محيط +محيطا +محيطاً +محيطنا +محيطه +محيطها +محيلين +محيي +محييا +محيّر +مخ +مخادع +مخارج +مخارجها +مخازن +مخاض +مخاط +مخاطبا +مخاطباً +مخاطبة +مخاطبتهم +مخاطر +مخاطرة +مخاطره +مخاطرها +مخاطية +مخافة +مخالب +مخالبه +مخالبها +مخالطة +مخالف +مخالفا +مخالفة +مخاوف +مخاوفك +مخاوفه +مخاوفهم +مخاوفي +مخبأ +مخبأة +مخبئها +مخبئهما +مخبره +مخبريا +مخبرية +مختار +مختارا +مختارات +مختاراً +مختارة +مختال +مختبئة +مختبر +مختبرا +مختبرات +مختبراً +مختبره +مختبَرَية +مختتم +مخترع +مخترقا +مخترقة +مخترقي +مخترقين +مختصا +مختصة +مختصر +مختصرا +مختصرة +مختصون +مختصين +مختصًا +مختف +مختفية +مختلط +مختلطة +مختلف +مختلفا +مختلفان +مختلفاً +مختلفة +مختلفتين +مختلفون +مختلفين +مختلفًا +مختلقا +مختومة +مخجلة +مخدر +مخدرا +مخدرات +مخدرة +مخدوما +مخرب +مخرج +مخرجا +مخرجات +مخرجاً +مخرجة +مخرجًا +مخرز +مخرشة +مخروطي +مخروطيا +مخروطية +مخزن +مخزوم +مخزون +مخزونات +مخزونه +مخزونها +مخزوني +مخزي +مخصبة +مخصص +مخصصة +مخصصتين +مخصِّباتٍ +مخضرة +مخطئا +مخطئاً +مخطئة +مخطط +مخططات +مخططة +مخطوط +مخطوطا +مخطوطات +مخطوطاته +مخطوطاتها +مخطوطة +مخطوطتي +مخطوطي +مخطّط +مخفض +مخفضة +مخفف +مخففة +مخفًّفًا +مخفَّفًا +مخلب +مخلة +مخلص +مخلصا +مخلصة +مخلصنا +مخلصون +مخلفا +مخلفات +مخلفاتها +مخلوق +مخلوقات +مخلوقاته +مخلوقاً +مخلوقة +مخلوقته +مخلوقين +مخلَّفات +مخمشات +مخملباف +مخموج +مخموجات +مخموس +مخولين +مخيف +مخيفاً +مخيفة +مخيفًا +مخيلة +مخيلتك +مخيلتنا +مخيلتها +مخيلتي +مخيم +مخيمات +مخيماً +مخيَّلتهم +مد +مدائن +مدائنهم +مداح +مداخل +مداخلا +مداخلات +مداخلة +مداخله +مداخلها +مداخن +مداخيل +مداد +مداده +مدار +مداراة +مدارات +مدارالعام +مدارج +مدارس +مدارسنا +مدارسه +مدارسها +مدارسهم +مدارك +مداري +مداعبا +مداعباتي +مداعبة +مدافع +مدافعا +مدافعاً +مدافعة +مدافعه +مدافعًا +مدافن +مدام +مدان +مدانا +مدانين +مداه +مداها +مداهماته +مداواة +مداواتها +مداوٍ +مدببة +مدبرا +مدبرة +مدبلجا +مدبّرة +مدة +مدت +مدته +مدتها +مدجنين +مدجّنين +مدح +مدحه +مدحوا +مدحورة +مدخر +مدخراته +مدخل +مدخلا +مدخلاً +مدخلنا +مدخله +مدخنا +مدخنين +مدد +مددت +مدر +مدراء +مدرب +مدربه +مدربين +مدرج +مدرجات +مدرس +مدرسا +مدرساً +مدرسة +مدرسةً +مدرسته +مدرستها +مدرستي +مدرستين +مدرسوها +مدرسي +مدرسيا +مدرسياً +مدرسية +مدرسين +مدرسيها +مدرسيّ +مدرسًا +مدركا +مدركة +مدركين +مدروس +مدروسا +مدروساً +مدروسة +مدريد +مدرّج +مدرّساً +مدشنا +مدعاة +مدعم +مدعمة +مدعو +مدعواً +مدعوماً +مدعومة +مدعوين +مدفأة +مدفعا +مدفنه +مدفوعا +مدفوعة +مدفونة +مدقع +مدقعًا +مدقِّقاً +مدكور +مدلول +مدلولات +مدلولاته +مدمج +مدمجة +مدمر +مدمرة +مدمس +مدمني +مدموجة +مدمّراً +مدمّرة +مدن +مدناً +مدننا +مدنه +مدنها +مدني +مدنية +مدنيًّا +مدها +مدهش +مدهشا +مدهشة +مدور +مدورة +مدونات +مدويا +مدوّر +مدى +مدي +مديح +مديد +مديدة +مدير +مديرا +مديراً +مديرة +مديره +مديرو +مديرون +مديري +مديرية +مديع +مدين +مدينا +مدينة +مدينتان +مدينتك +مدينتكم +مدينتكن +مدينتنا +مدينته +مدينتهم +مدينتى +مدينتي +مدينتين +مدينـة +مدّ +مدّة +مدّت +مدَّت +مذ +مذاب +مذابح +مذاق +مذاهب +مذاهبهم +مذبحة +مذركير +مذعنة +مذعورات +مذعورة +مذعورًا +مذكرات +مذكراته +مذكراتها +مذكراتي +مذكرة +مذكور +مذلة +مذنب +مذهب +مذهبا +مذهبة +مذهبه +مذهبي +مذهبية +مذهبين +مذهل +مذهلا +مذهلاً +مذهلة +مذهولا +مذهولة +مذهّبة +مذيع +مذيعا +مذيعاً +مذيعة +مر +مرآباً +مرآة +مرآتك +مرأى +مرئي +مرئياتكم +مرئية +مرابحة +مرابط +مرابعاً +مرابي +مرات +مراتب +مراتعه +مراجع +مراجعة +مراجعتها +مراجعه +مراجعي +مراحل +مراحله +مراحلها +مراحيض +مراد +مرادفا +مرادفاتها +مرادفة +مرارا +مراراً +مرارة +مرارته +مرارًا +مراسل +مراسلا +مراسلات +مراسلة +مراسلها +مراسم +مراسيل +مراسيم +مراصد +مراع +مراعاة +مراعاتها +مراعاتهم +مراعيا +مراعيه +مراعيها +مرافئ +مرافئها +مرافئهم +مرافعاتهم +مرافق +مرافقا +مرافقة +مرافقتها +مرافقتي +مرافقنا +مرافقي +مرافقينا +مراقب +مراقبة +مراقص +مراكز +مراكش +مراكمتها +مراهقاً +مراهقة +مراهقتي +مراهقين +مراهم +مراوح +مرايا +مرايانا +مربحة +مربط +مربع +مربعا +مربعات +مربعاً +مربعة +مربعين +مربعًا +مربوط +مربوطاً +مربوع +مربى +مربي +مربية +مربّي +مربَّع +مرة +مرةً +مرت +مرتاح +مرتاحة +مرتاحين +مرتادى +مرتادي +مرتان +مرتب +مرتبا +مرتبة +مرتبط +مرتبطا +مرتبطان +مرتبطاً +مرتبطة +مرتبطًا +مرتبكا +مرتبكاً +مرتبكة +مرتبنا +مرتبي +مرتجفا +مرتد +مرتدين +مرتديه +مرتدًّا +مرتزق +مرتزقة +مرتشو +مرتع +مرتعا +مرتعاً +مرتعش +مرتعشة +مرتعشين +مرتفع +مرتفعات +مرتفعة +مرتكبي +مرتكبيه +مرتكزات +مرتكزاً +مرتكزة +مرتل +مرتهنة +مرتين +مرتّب +مرثية +مرج +مرجاني +مرجانية +مرجع +مرجعا +مرجعاً +مرجعنا +مرجعه +مرجعها +مرجعياته +مرجعية +مرجعيته +مرجليوث +مرجو +مرجواً +مرح +مرحا +مرحاض +مرحاضاً +مرحب +مرحبا +مرحبة +مرحة +مرحلة +مرحلةً +مرحلته +مرحلتها +مرحلتين +مرحليا +مرحى +مرحّبا +مرخصة +مردان +مردخاي +مرددا +مرددة +مرده +مردود +مردودان +مردوداً +مردوده +مردودها +مرذولون +مررت +مررنا +مرزا +مرزوق +مرساة +مرساته +مرسلة +مرسم +مرسما +مرسمك +مرسمه +مرسمي +مرسوم +مرسوما +مرسى +مرسي +مرسين +مرشح +مرشحا +مرشحاً +مرشحة +مرشد +مرصد +مرصعا +مرصعة +مرض +مرضا +مرضات +مرضانا +مرضاه +مرضاً +مرضت +مرضك +مرضه +مرضى +مرضي +مرضياً +مرضية +مرضٌ +مرطبة +مرعاه +مرعب +مرعبا +مرعباً +مرعبة +مرعى +مرعيّة +مرفأ +مرفق +مرفقا +مرفقة +مرفقه +مرفقًا +مرفوض +مرفوضة +مرفوع +مرفوعة +مرقة +مرقدها +مرقص +مرقعة +مركب +مركبا +مركبات +مركبة +مركبنا +مركز +مركزا +مركزاً +مركزبحث +مركزة +مركزنا +مركزه +مركزها +مركزي +مركزيا +مركزية +مركزين +مركزًا +مركونة +مركّب +مركّبات +مركّبنا +مركّزاً +مركَّبات +مرموز +مرموق +مرموقا +مرموقاً +مرموقة +مرموقون +مرموقين +مرميا +مرنة +مرنقة +مره +مرهف +مرهفة +مرهفين +مرهقاَ +مرهقة +مرهونة +مروا +مروان +مروة +مروجاً +مروحة +مروحيات +مروحية +مرور +مرورا +مروراً +مروره +مروري +مرورًا +مروض +مروضا +مروع +مرونة +مروية +مرويته +مروّة +مريانا +مريبة +مريح +مريحا +مريحان +مريحة +مريدين +مريديه +مريدًا +مريرا +مريرة +مريض +مريضا +مريضة +مريضه +مريضها +مريضين +مريم +مرين +مرّ +مرّاً +مرّة +مرّت +مرٍّ +مرَّ +مرَّة +مرَّةً +مزاج +مزاجك +مزاجه +مزاجي +مزاحمة +مزاحمتها +مزاد +مزادات +مزار +مزارا +مزاراً +مزارع +مزارعة +مزارعها +مزارعين +مزاعمه +مزالق +مزامير +مزاولة +مزايا +مزاياها +مزاياهن +مزايدات +مزج +مزجا +مزجت +مزجه +مزجهم +مزدانة +مزدحم +مزدحماً +مزدحمة +مزدهر +مزدهرة +مزدهرًا +مزدوج +مزدوجاً +مزدوجة +مزر +مزرعة +مزرعته +مزروعاتنا +مزروعة +مزريا +مزعجا +مزعجة +مزعجًا +مزقت +مزقتا +مزقها +مزلجتين +مزماره +مزمن +مزمنة +مزمومة +مزهر +مزهوا +مزود +مزودة +مزوّد +مزوّري +مزية +مزيج +مزيجا +مزيجاً +مزيد +مزيدا +مزيداً +مزيف +مزيفا +مزيفة +مزين +مزينة +مزيّفة +مزيّنة +مزّاحا +مزّقت +مزَّقت +مس +مسألة +مسؤلوا +مسؤول +مسؤولا +مسؤولة +مسؤولو +مسؤولون +مسؤولى +مسؤولي +مسؤوليات +مسؤولياتها +مسؤولية +مسؤوليتنا +مسؤولين +مسئول +مسئولا +مسئولاً +مسئولة +مسئولو +مسئولون +مسئولى +مسئولي +مسئوليات +مسئولياته +مسئولياتها +مسئولياتهم +مسئولية +مسئوليته +مسئوليتها +مسئوليتهما +مسئولين +مسئوليها +مسا +مساء +مساءلة +مساءً +مسائل +مسائلة +مسابح +مسابقات +مسابقاتها +مسابقة +مسابقتها +مساج +مساجد +مساجدهم +مساحات +مساحاتها +مساحة +مساحته +مساحتها +مساحـتها +مسار +مسارا +مسارات +مسارب +مسارح +مسارك +مساره +مسارها +مسارهم +مساس +مساعد +مساعدا +مساعدات +مساعداً +مساعدة +مساعدتك +مساعدته +مساعديه +مساعدًا +مساعي +مساعيه +مساعيها +مسافات +مسافة +مسافته +مسافر +مسافرا +مسافراً +مسافرين +مساكن +مساكنهم +مسالك +مسالم +مسالمًا +مسامرات +مسامراتنا +مسامعنا +مسامعه +مسامعهم +مسامي +مسامير +مساند +مساندة +مساندته +مساهمات +مساهمان +مساهمة +مساهمتنا +مساهمتها +مساهمـة +مساهمين +مساهميها +مساوئه +مساوئها +مساواة +مساواتها +مساوية +مسبار +مسبارًا +مسبب +مسببات +مسبباته +مسببة +مسبح +مسبحة +مسبق +مسبقا +مسبقاً +مسبقة +مسبقًا +مسبوق +مسبوقا +مسبوقة +مستأجر +مستباحة +مستجدات +مستجيبا +مستحب +مستحدث +مستحضراً +مستحق +مستحقاته +مستحقاتهم +مستحقيها +مستحيل +مستحيلاً +مستحيلة +مستخدم +مستخدما +مستخدماً +مستخدمة +مستخدمو +مستخدمي +مستخدمين +مستخلص +مستخلصة +مستخلفًا +مستدرجا +مستدركا +مستديرة +مستذكرا +مستر +مسترخيا +مسترسلاً +مسترشدين +مستريحة +مستسلما +مستسلمة +مستسلمين +مستشار +مستشارا +مستشاراً +مستشارة +مستشاري +مستشارية +مستشاريه +مستشارًا +مستشرق +مستشرقة +مستشفى +مستشفي +مستشفيات +مستصعبات +مستصعباً +مستصعبة +مستطردا +مستطلعا +مستطلعة +مستطيل +مستطيلة +مستعار +مستعد +مستعدا +مستعداً +مستعدة +مستعدون +مستعدين +مستعرب +مستعرباً +مستعربينا +مستعرضا +مستعرضين +مستعصية +مستعظماً +مستعمر +مستعمرات +مستعمراتها +مستعمرة +مستعمرو +مستعمري +مستعمرينا +مستعملة +مستعيداً +مستعينا +مستعيناً +مستعينين +مستفادة +مستفهمة +مستفيدا +مستفيدة +مستفيدين +مستفيضة +مستقاة +مستقبل +مستقبلا +مستقبلات +مستقبلاً +مستقبلة +مستقبلنا +مستقبله +مستقبلهم +مستقبلى +مستقبلي +مستقبلياً +مستقبلية +مستقبليهم +مستقر +مستقرة +مستقرها +مستقرّة +مستقرَّاً +مستقل +مستقلا +مستقلاً +مستقلة +مستقلتان +مستقلتين +مستقيم +مستقيما +مستقيماً +مستقيمة +مستقيمي +مستكشفاً +مستلبون +مستلزمات +مستلزماتها +مستلق +مستلقيا +مستلقٍ +مستلهماً +مستلهمة +مستلّة +مستمتعا +مستمد +مستمدة +مستمر +مستمرا +مستمراً +مستمرة +مستمرين +مستمرّة +مستمسكا +مستمع +مستمعا +مستمعاً +مستمعين +مستند +مستندا +مستندة +مستنسخ +مستنقع +مستنقعات +مستنير +مستهدف +مستهدفا +مستهدفاً +مستهدفة +مستهل +مستهلكة +مستهلكون +مستهلكي +مستهلكين +مستهلكيه +مستو +مستوا +مستواك +مستواها +مستوحاة +مستوحدين +مستودع +مستودعات +مستودعاً +مستور +مستورد +مستوردة +مستوطن +مستوطنة +مستوطنون +مستوفزا +مستوفى +مستوى +مستوي +مستويات +مستوياته +مستوياتها +مستوياتهن +مستوية +مستيقظ +مسجد +مسجدا +مسجداً +مسجده +مسجدي +مسجدًا +مسجل +مسجلا +مسجلاً +مسجلة +مسجلون +مسجلين +مسجور +مسجونين +مسجى +مسجّى +مسح +مسحا +مسحة +مسحت +مسحتنا +مسحها +مسحورة +مسحوق +مسحى +مسحَ +مسخ +مسخاً +مسخناً +مسخها +مسخّرا +مسدس +مسدود +مسراي +مسرج +مسرح +مسرحا +مسرحاً +مسرحنا +مسرحه +مسرحي +مسرحيا +مسرحيات +مسرحياته +مسرحياتي +مسرحياً +مسرحية +مسرحيتك +مسرحيته +مسرحيتي +مسرحيين +مسرحًا +مسرطن +مسرطنة +مسرطِنة +مسرعا +مسرعاً +مسرعة +مسرورة +مسروق +مسروقات +مسروقة +مسز +مسطح +مسطحا +مسطحات +مسطحها +مسطرة +مسطوح +مسعاه +مسعود +مسعورا +مسعورة +مسقط +مسقوف +مسقوفة +مسك +مسكر +مسكن +مسكناً +مسكنه +مسكني +مسكوبا +مسكون +مسكونا +مسكوناً +مسكونة +مسكين +مسكينة +مسلاتة +مسلة +مسلح +مسلحة +مسلحين +مسلسل +مسلسلات +مسلك +مسلم +مسلما +مسلماً +مسلمة +مسلمتين +مسلمهم +مسلمو +مسلمون +مسلمى +مسلمي +مسلمين +مسلميْن +مسلمًا +مسلوب +مسلوخ +مسلية +مسماة +مسمعه +مسمعي +مسموح +مسموحاً +مسموع +مسموعة +مسموعي +مسمى +مسمي +مسمياته +مسمّياته +مسن +مسنة +مسنودة +مسنّ +مسها +مسهبة +مسهما +مسوح +مسوحات +مسوخ +مسودات +مسورة +مسوَّدةُ +مسيح +مسيحي +مسيحيا +مسيحية +مسيرة +مسيرتا +مسيرته +مسيرتها +مسيرتي +مسيره +مسيطر +مسيطرا +مسيطرة +مسيَّجة +مش +مشئوم +مشا +مشابه +مشابهة +مشابهًا +مشاة +مشاجرة +مشادة +مشاربهم +مشارف +مشارك +مشاركا +مشاركات +مشاركاته +مشاركاتها +مشاركاً +مشاركة +مشاركته +مشاركتها +مشاركتهم +مشاركتي +مشاركين +مشاري +مشاريع +مشاريعه +مشاريعها +مشاريعي +مشاط +مشاعا +مشاعر +مشاعرنا +مشاعره +مشاعرهم +مشاعرى +مشاعري +مشاعًا +مشافهة +مشافي +مشاق +مشاكساته +مشاكل +مشاكلنا +مشاكله +مشاكلهم +مشاكلهن +مشاكلي +مشاهد +مشاهدات +مشاهداته +مشاهداتي +مشاهدة +مشاهدته +مشاهدتها +مشاهدتهم +مشاهدتي +مشاهده +مشاهدها +مشاهدو +مشاهدي +مشاهدين +مشاهديه +مشاهير +مشاوير +مشايخ +مشبعة +مشبعه +مشبوه +مشبوهة +مشت +مشتراة +مشترك +مشتركا +مشتركاً +مشتركة +مشترواتهم +مشتريات +مشترياتها +مشترياتهم +مشترياتهما +مشتعلاً +مشتعلة +مشتق +مشتقات +مشتقاته +مشتقة +مشتقةٌ +مشتلا +مشتهاة +مشتى +مشتّت +مشجر +مشجرات +مشجع +مشجعة +مشجعين +مشجّرات +مشحوناً +مشحونة +مشد +مشددا +مشددة +مشدودا +مشدوداً +مشدودة +مشدوها +مشرئبة +مشربة +مشربيات +مشرط +مشرع +مشرعة +مشرف +مشرفاً +مشرفة +مشرق +مشرقا +مشرقاً +مشرقة +مشرقية +مشركاً +مشروب +مشروباً +مشروح +مشروحة +مشروط +مشروطة +مشروع +مشروعا +مشروعات +مشروعاته +مشروعاتها +مشروعاتي +مشروعاً +مشروعة +مشروعنا +مشروعه +مشروعها +مشروعهم +مشروعي +مشروعية +مشروعيتها +مشروعًا +مشرّفة +مشط +مشع +مشعة +مشعل +مشعّ +مشـتاق +مشفقة +مشفى +مشقة +مشقةً +مشككا +مشكلات +مشكلاتنا +مشكلاته +مشكلاتهم +مشكلاً +مشكلة +مشكلتان +مشكلتك +مشكلتنا +مشكلته +مشكلتها +مشكور +مشكورا +مشكوراً +مشكورة +مشكوك +مشكيني +مشلولا +مشمس +مشمولة +مشهد +مشهدا +مشهدية +مشهود +مشهودا +مشهودة +مشهور +مشهورا +مشهورة +مشهورًا +مشوار +مشوارك +مشوارنا +مشواره +مشورة +مشوه +مشوهة +مشوية +مشوّه +مشوّهة +مشى +مشياً +مشيته +مشيتها +مشيرا +مشيراً +مشيرة +مشينا +مشيّأة +مشيّدة +مص +مصائب +مصائبنا +مصائد +مصائر +مصائرهم +مصاب +مصابا +مصابات +مصاباً +مصابة +مصابتين +مصابها +مصابون +مصابيح +مصابين +مصابًا +مصاحب +مصاحبا +مصاحبة +مصادر +مصادرة +مصادره +مصادرها +مصادفة +مصادمات +مصارعة +مصارعين +مصارف +مصاريعها +مصاريف +مصاطب +مصاعد +مصاف +مصافِ +مصالح +مصالحة +مصالحنا +مصالحها +مصالحهم +مصانع +مصانعها +مصايد +مصايف +مصب +مصبات +مصباح +مصباحا +مصبه +مصبًا +مصبّ +مصبّها +مصححا +مصححًا +مصحف +مصحفا +مصحفك +مصحفه +مصحفًا +مصحوب +مصحوباً +مصحوبة +مصحوبٌ +مصدات +مصداق +مصداقية +مصداقيتها +مصدر +مصدرا +مصدران +مصدراً +مصدره +مصدرها +مصدرى +مصدرية +مصدرين +مصدرًا +مصدق +مصدقة +مصر +مصرا +مصراته +مصراعيه +مصراعيها +مصرع +مصرف +مصرفي +مصروف +مصروفات +مصروفاتها +مصروفك +مصروفه +مصروفهم +مصروفي +مصري +مصريا +مصرية +مصريون +مصريين +مصريّة +مصطبة +مصطدمة +مصطفى +مصطفي +مصطلح +مصطلحات +مصطلحاتها +مصطلحين +مصطنعاً +مصعد +مصفاة +مصفد +مصفرًا +مصفف +مصفقة +مصفوع +مصفوفات +مصل +مصلاه +مصلحة +مصلحتك +مصلحتنا +مصلحته +مصلحتها +مصلحتهم +مصلحية +مصلحين +مصلى +مصلي +مصلّح +مصمت +مصمد +مصمم +مصمما +مصممة +مصممه +مصممو +مصممين +مصمّد +مصنع +مصنعا +مصنعاً +مصنعة +مصنعها +مصنعي +مصنعيها +مصنف +مصنفات +مصنفه +مصنفي +مصنوع +مصنوعا +مصنوعة +مصهورا +مصور +مصورا +مصوراً +مصورة +مصوره +مصورين +مصوَّبًا +مصيب +مصيبة +مصيدة +مصير +مصيرا +مصيراً +مصيرنا +مصيره +مصيرها +مصيرية +مضاءة +مضاءه +مضائق +مضاجع +مضاد +مضادا +مضادات +مضادة +مضادين +مضارباً +مضاربة +مضاعة +مضاعفا +مضاعفات +مضاعفاته +مضاعفاتها +مضاعفاً +مضاعفة +مضافا +مضافة +مضامير +مضامين +مضامينها +مضايقات +مضايقة +مضبوطة +مضت +مضجعا +مضجعه +مضحك +مضحكة +مضخات +مضخة +مضر +مضرة +مضرجاً +مضروبة +مضرّاً +مضض +مضطجع +مضطر +مضطراً +مضطربة +مضطرة +مضطرين +مضطهد +مضــــيئة +مضللاً +مضمار +مضمون +مضموناً +مضمونة +مضمونه +مضمونها +مضن +مضنية +مضنٍ +مضوا +مضى +مضي +مضيء +مضيئا +مضيئة +مضياف +مضيافة +مضيت +مضيفا +مضيفنا +مضيفيه +مضيق +مضينا +مطابخ +مطابخنا +مطابع +مطابقا +مطابقة +مطاحن +مطار +مطارات +مطاراتها +مطاراً +مطارد +مطاردة +مطاردته +مطاردولي +مطاردين +مطارديه +مطاردًا +مطارق +مطارها +مطاطية +مطاع +مطاعم +مطالب +مطالبا +مطالبة +مطالبتهم +مطالبهم +مطالبون +مطالبين +مطالعة +مطالعةِ +مطامح +مطامحك +مطامحهم +مطامع +مطامعهم +مطاوع +مطبخ +مطبعة +مطبعية +مطبق +مطبقا +مطبقاً +مطبوع +مطبوعا +مطبوعة +مطحنة +مطحونة +مطر +مطران +مطرانا +مطرب +مطربات +مطربة +مطربنا +مطربي +مطرح +مطرحو +مطرد +مطرداً +مطردة +مطرز +مطرزة +مطرقة +مطروحا +مطروحاً +مطروحة +مطروقة +مطرية +مطعم +مطعماً +مطعمنا +مطفأة +مطلب +مطلبا +مطلبنا +مطلبه +مطلبهم +مطلع +مطلعا +مطلعه +مطلعها +مطلق +مطلقا +مطلقات +مطلقاً +مطلقة +مطلقته +مطلقًا +مطلك +مطلوب +مطلوبا +مطلوباً +مطلوبة +مطلي +مطمئن +مطمئنا +مطمئناً +مطمئنة +مطمئنين +مطمئنًا +مطمع +مطموسة +مطواعتين +مطورة +مطوري +مطول +مطولا +مطولة +مطوّلا +مطوّلاً +مطية +مطير +مطيرة +مطّرداً +مطّردة +مظاريف +مظالمنا +مظانها +مظاهر +مظاهرات +مظاهرة +مظاهره +مظاهرها +مظفرة +مظلة +مظلته +مظللة +مظلمة +مظلومة +مظهر +مظهرا +مظهراً +مظهره +مظهرها +مع +معا +معابد +معابدهم +معابر +معاداة +معادل +معادلا +معادلات +معادلاتهم +معادلة +معادلتي +معادلها +معادن +معادها +معادية +معادٍ +معارض +معارضا +معارضة +معارضته +معارضتهم +معارضه +معارضها +معارضوه +معارضي +معارضيه +معارضيها +معارف +معارفه +معارفها +معارك +معاركنا +معاريف +معاشها +معاصر +معاصرا +معاصراً +معاصرة +معاصريك +معاصريه +معاصرًا +معاطف +معافى +معاقل +معاك +معاكس +معاكساً +معاكسة +معالجات +معالجاته +معالجة +معالجته +معالجتها +معالجتهم +معالم +معالمنا +معالمه +معالمها +معالي +معامل +معاملات +معاملاتهم +معاملة +معاملتك +معاملتها +معاملها +معان +معانا +معاناة +معاناته +معاناتهن +معاناتي +معاند +معانقاً +معانقًا +معاني +معانيه +معانيها +معاه +معاهد +معاهدة +معاهم +معاودة +معاودتها +معاونته +معاوية +معايشة +معاينة +معايير +معاييرنا +معاييرها +معاً +معبد +معبداً +معبر +معبراً +معبراَ +معبرة +معبور +معبّأة +معبّر +معتادا +معتاداً +معتادة +معتادون +معتادًا +معتاشا +معتبرا +معتبرة +معتبرين +معتبرًا +معتدا +معتدل +معتدلة +معتذراً +معترضة +معترف +معترفا +معترفاً +معترفًا +معترك +معتز +معتزة +معتصم +معتصماً +معتفس +معتق +معتقد +معتقدات +معتقداتنا +معتقداتهم +معتقداً +معتقلات +معتقلاته +معتم +معتمة +معتمدا +معتمداً +معتمدة +معتمدين +معتمدًا +معتمر +معتنى +معجب +معجبا +معجباً +معجبون +معجزة +معجزته +معجل +معجم +معجمي +معجون +معجونة +معد +معدات +معدة +معدتك +معدل +معدلات +معدلاتها +معدلة +معدن +معدني +معدنية +معدودا +معدودات +معدودة +معدومة +معدي +معدية +معدّ +معدّل +معدّلات +معدّلة +معدَّلة +معذبا +معذبة +معذرة +معذّب +معراجا +معربا +معرشة +معرض +معرضا +معرضاً +معرضه +معرضون +معرضي +معرضين +معرضًا +معرفاً +معرفة +معرفتنا +معرفته +معرفتهم +معرفتي +معرفي +معرفيا +معرفياً +معرفية +معركة +معركته +معركتها +معركتهم +معروض +معروضة +معروف +معروفا +معروفاً +معروفة +معروفي +معروفين +معروفًا +معروق +معرّض +معرّضاً +معرّضة +معرّضون +معز +معزوفة +معزوفته +معزولا +معزولاً +معزولة +معزولين +معسكر +معسكرات +معسكراتهم +معسكرين +معشبة +معشر +معشوقته +معصرة +معصوبة +معصوماً +معصية +معصيته +معصيتهم +معضلة +معط +معطاء +معطاة +معطلاً +معطلة +معطوب +معطى +معطيات +معطياته +معطياتها +معطيً +معظم +معظمنا +معظمه +معظمها +معظمهم +معظمُ +معـاني +معقد +معقدة +معقدون +معقـول +معقلا +معقلين +معقودة +معقودٍ +معقول +معقولا +معقولاً +معقولة +معقوليتها +معقّدة +معك +معكسراتهم +معكم +معكوسة +معكِ +معلبا +معلبات +معلبة +معلق +معلقات +معلقاً +معلقة +معلقًا +معللا +معللين +معلم +معلما +معلماً +معلمة +معلمهم +معلموكم +معلمي +معلمين +معلميه +معلمًا +معلن +معلنا +معلنة +معلوف +معلوفية +معلوم +معلومات +معلوماتنا +معلوماته +معلوماتها +معلوماتهم +معلوماتي +معلوماتية +معلومة +معلّقا +معلّقاً +معلّمه +معمار +معمارها +معماري +معمارية +معمر +معمعة +معمقة +معمل +معملاً +معمله +معممة +معمّقة +معن +معنا +معناه +معناها +معندة +معنويا +معنوياتهم +معنوياً +معنوية +معنى +معني +معنيا +معنياً +معنية +معنيّة +معه +معها +معهد +معهدا +معهداً +معهدًا +معهم +معهما +معوقا +معوقات +معوقين +معولا +معونات +معونة +معونته +معي +معيار +معيارا +معيباً +معيد +معيداً +معيدًا +معيش +معيشة +معيشته +معيشتها +معيشتهم +معيشية +معيق +معين +معينا +معيناً +معينة +معينه +معينها +معينًا +معيّن +معيّنا +معيّنة +معًا +مـدفوعاً +مـدير +مـــــاذا +مـــنذ +مـن +مفاتنها +مفاتيح +مفاتيحه +مفاتيحها +مفاجآت +مفاجأة +مفاجئ +مفاجئا +مفاجئاً +مفاجئة +مفاجىء +مفاخر +مفاده +مفادها +مفارق +مفارقات +مفارقة +مفارقتها +مفاسد +مفاصل +مفاصله +مفاعل +مفاعلات +مفاهيم +مفاهيمنا +مفاهيمية +مفاوضات +مفتاح +مفتاحاً +مفتاحها +مفتاحي +مفتتح +مفتخراً +مفترضاً +مفترضة +مفترق +مفتش +مفتشي +مفتشيها +مفتعلا +مفتعلة +مفتقد +مفتوح +مفتوحا +مفتوحاً +مفتوحة +مفتوحتين +مفتوحًا +مفتونا +مفتونون +مفتي +مفتيا +مفجعا +مفخرة +مفدى +مفر +مفردات +مفرداته +مفرداتها +مفردة +مفرزات +مفرزة +مفرط +مفرطة +مفرقها +مفروش +مفروشة +مفروضة +مفرّ +مفزعا +مفزعاً +مفزعة +مفزوعا +مفزوعاً +مفسحة +مفسد +مفسدا +مفسدون +مفسر +مفصل +مفصلا +مفصلاً +مفصلة +مفصولا +مفصّل +مفضضة +مفضلاً +مفضلة +مفضلين +مفعم +مفعمة +مفعول +مفعولا +مفعولاً +مفعوله +مفعولها +مفقود +مفقودا +مفقوداً +مفقودة +مفكر +مفكرا +مفكراً +مفكرة +مفكرتي +مفكرو +مفكرون +مفكري +مفكرين +مفكريه +مفندا +مفهرسة +مفهوم +مفهومة +مفهومنا +مفهومه +مفهومها +مفهومهما +مفهومي +مفهومين +مفهومًا +مفوض +مفوضاً +مفوضة +مفوضية +مفوه +مفوهًا +مفيد +مفيدا +مفيداً +مفيدة +مفيدًا +مقابر +مقابرهم +مقابض +مقابل +مقابلات +مقابلة +مقابلته +مقابله +مقابلها +مقاتلات +مقاتلاً +مقاتلين +مقادير +مقار +مقارب +مقاربا +مقاربات +مقارباته +مقاربة +مقاربته +مقاربتها +مقارنة +مقارنةً +مقارنته +مقارنتها +مقارها +مقاريبه +مقاسمة +مقاصة +مقاصد +مقاصده +مقاضاة +مقاطع +مقاطعا +مقاطعات +مقاطعة +مقاطعتي +مقاطعها +مقاعد +مقاعدنا +مقاعده +مقاعدها +مقاعدهم +مقال +مقالا +مقالات +مقالاتكم +مقالاته +مقالاتي +مقالاً +مقالب +مقالبه +مقالبي +مقالة +مقالته +مقالنا +مقاليد +مقام +مقاما +مقامات +مقاماتها +مقامة +مقامه +مقامي +مقاه +مقاهي +مقاهيها +مقاولات +مقاولاً +مقاولي +مقاوماً +مقاومة +مقاومته +مقاومتها +مقايضة +مقايضته +مقاييس +مقاييسه +مقبر +مقبرة +مقبرته +مقبرتي +مقبل +مقبلة +مقبلون +مقبلين +مقبول +مقبولا +مقبولاً +مقبولة +مقتبس +مقتبل +مقتحم +مقتدر +مقتربا +مقترحات +مقترنا +مقترنًا +مقتصر +مقتصرا +مقتضباً +مقتضبة +مقتضى +مقتضيات +مقتطعة +مقتطفات +مقتل +مقتلعا +مقتنع +مقتنعا +مقتنيات +مقتنياته +مقتنياتها +مقتولين +مقدار +مقداراً +مقداره +مقدارها +مقدارهم +مقدر +مقدرة +مقدرتك +مقدرتهم +مقدرتي +مقدس +مقدسا +مقدسات +مقدساته +مقدساً +مقدسة +مقدسي +مقدسيون +مقدسيين +مقدم +مقدما +مقدمات +مقدمة +مقدمته +مقدمتها +مقدمتهم +مقدور +مقدونيا +مقديسي +مقدّرا +مقدّمة +مقدَّم +مقر +مقرأة +مقرا +مقراً +مقربة +مقررا +مقررات +مقررًا +مقرفصا +مقره +مقرها +مقروء +مقروءة +مقرونة +مقرًا +مقسم +مقسمة +مقسوما +مقشرة +مقشوراً +مقص +مقصاً +مقصدا +مقصده +مقصر +مقصرون +مقصود +مقصودا +مقصوداً +مقصور +مقصورا +مقصوراً +مقصورة +مقصورتها +مقصّر +مقضيا +مقطع +مقطعا +مقطعاً +مقطعين +مقطورٌ +مقطوع +مقطوعات +مقعد +مقعدا +مقعداً +مقعدة +مقعده +مقعدها +مقعدي +مقعدية +مقفلة +مقلة +مقلدا +مقلداً +مقلدة +مقلعا +مقلقة +مقلما +مقلوب +مقلوبة +مقلّدا +مقنع +مقنعا +مقنعاً +مقنعة +مقنن +مقننة +مقنَّنة +مقهورا +مقهى +مقود +مقوسة +مقولات +مقولة +مقولته +مقومات +مقوماتنا +مقوماتها +مقوي +مقويات +مقوّسا +مقوّمات +مقوِّمات +مقياس +مقياسا +مقياساً +مقياسها +مقياسًا +مقيتا +مقيد +مقيدة +مقيل +مقيم +مقيما +مقيماً +مقيمة +مقيمي +مقيمين +مقيمًا +مقيّداً +مكائده +مكائن +مكابح +مكابدات +مكاتب +مكاتبها +مكاتبهم +مكاسب +مكاسبها +مكافآت +مكافأة +مكافأته +مكافأتها +مكافئ +مكافئة +مكافحات +مكافحة +مكافحته +مكان +مكانا +مكاناً +مكانة +مكانته +مكانتها +مكانتهم +مكانك +مكانه +مكانها +مكانهم +مكاني +مكانًا +مكانَهُ +مكاوي +مكبا +مكبرات +مكبوتا +مكبوتة +مكبّلين +مكبَّلة +مكة +مكتئب +مكتئباً +مكتب +مكتبا +مكتبات +مكتباتنا +مكتبان +مكتباً +مكتبة +مكتبةِ +مكتبته +مكتبتها +مكتبتي +مكتبه +مكتبها +مكتبي +مكتبية +مكترث +مكترثين +مكتشف +مكتشفات +مكتشفه +مكتشفو +مكتظا +مكتظة +مكتـبي +مكتـظ +مكتفية +مكتفين +مكتمل +مكتملة +مكتنزة +مكتوب +مكتوبا +مكتوبة +مكتوفة +مكتوفي +مكتوفين +مكتوم +مكتومة +مكث +مكثت +مكثف +مكثفة +مكثنا +مكدسة +مكدّسة +مكرر +مكررا +مكرراً +مكررة +مكرم +مكرهاً +مكرهة +مكروه +مكروهة +مكروية +مكرّس +مكس +مكسب +مكسبا +مكسرة +مكسوة +مكسورة +مكشوف +مكشوفة +مكشوفون +مكعب +مكعبات +مكفهراً +مكلف +مكلفا +مكلفة +مكللا +مكللة +مكلَّفاً +مكملا +مكملاتها +مكملاً +مكملة +مكملتين +مكمن +مكمنه +مكمنها +مكن +مكنت +مكنتنا +مكنته +مكنه +مكنها +مكنهم +مكنونات +مكنوناتها +مكنيل +مكنّه +مكوثه +مكون +مكونا +مكونات +مكوناته +مكوناتها +مكوناً +مكونة +مكوّن +مكوّنات +مكوّناتها +مكوّنة +مكوّنًا +مكي +مكياج +مكيبي +مكيف +مكيفات +مكيفة +مكيفين +مكين +مكّن +مكّنتها +مل +ملء +ملأ +ملأت +ملأته +ملأوا +ملأى +ملؤه +ملؤها +ملئ +ملئت +ملا +ملاءتها +ملاءمة +ملائكيتنا +ملائم +ملائما +ملائماً +ملائمة +ملابس +ملابساتها +ملابسك +ملابسه +ملابسها +ملابسهم +ملابسي +ملاجئها +ملاح +ملاحاً +ملاحظات +ملاحظاتنا +ملاحظاته +ملاحظاتهم +ملاحظة +ملاحظته +ملاحظتها +ملاحظون +ملاحقة +ملاحقته +ملاحم +ملاحي +ملاحية +ملاذاً +ملاذكرد +ملاذها +ملاذي +ملازم +ملازما +ملازماً +ملازمة +ملازمتي +ملازمًا +ملاسنات +ملاطفا +ملاعب +ملاعبه +ملاك +ملاكا +ملاكمة +ملاكمين +ملامح +ملامحه +ملامحها +ملامحهن +ملامحي +ملامسة +ملان +ملاه +ملاهي +ملاوي +ملاىين +ملايين +ملبس +ملبسة +ملبين +ملة +ملت +ملتحقة +ملتحمة +ملتحمين +ملتزم +ملتزمون +ملتزمًا +ملتصقا +ملتصقاً +ملتصقة +ملتصقين +ملتفت +ملتفتٍ +ملتقى +ملتقي +ملتهباً +ملتوية +ملثمة +ملجأ +ملح +ملحة +ملحـة +ملحق +ملحقاً +ملحقة +ملحمة +ملحمته +ملحمية +ملحن +ملحني +ملحوظ +ملحوظا +ملحوظاً +ملحوظة +ملحوظًا +ملحي +ملحَّة +ملخص +ملخصاً +ملخصها +ملذات +ملرد +ملزم +ملزما +ملزماً +ملزمون +ملساء +ملصق +ملصقاً +ملصقة +ملعب +ملعبا +ملعبي +ملعقة +ملعلعين +ملف +ملفا +ملفات +ملفاتها +ملفق +ملفقة +ملفوفة +ملفًا +ملقاة +ملقة +ملقناً +ملك +ملكا +ملكات +ملكاً +ملكة +ملكه +ملكها +ملكهم +ملكوت +ملكوته +ملكي +ملكية +ملكيته +ملكيين +ملكًا +ملل +مللت +مللنا +ملله +ملليجرام +ملليمترين +ملم +ملماتها +ملماً +ملمس +ملمساً +ملمسه +ملموس +ملموسا +ملموساً +ملموسة +ملمًّا +ملهاة +ملهمة +ملوثات +ملوثة +ملوحا +ملوحة +ملوحته +ملوك +ملوكهم +ملون +ملونا +ملونة +ملويّة +ملوّثاً +ملوّثة +ملوّنة +ملوِّث +ملوِّثات +مليء +مليئا +مليئاً +مليئة +مليئتين +مليا +مليار +مليارا +مليارات +ملياراً +ملياري +ملياً +مليح +مليكي +مليمترات +مليمتراً +مليمترًا +مليون +مليونا +مليونان +مليوناً +مليونى +مليوني +مليونين +مليّاً +مليِّن +مم +مما +مماتها +مماثل +مماثلا +مماثلاً +مماثلة +ممارسا +ممارسات +ممارساته +ممارسة +ممارستنا +ممارسته +ممارسي +ممارسين +ممارسيه +ممازحا +ممالك +ممتاز +ممتازاً +ممتازة +ممتازًا +ممتد +ممتداً +ممتدة +ممتطيا +ممتع +ممتعا +ممتعة +ممتلئ +ممتلئة +ممتلكات +ممتلكاتك +ممتلكاته +ممتلكاتها +ممثل +ممثلا +ممثلاً +ممثلة +ممثلو +ممثلون +ممثلى +ممثلي +ممثلين +ممثليه +ممثليهم +ممدد +ممدوح +ممدودة +ممر +ممرات +ممرض +ممرضات +ممرٌّ +ممرَّات +ممزقة +ممزقًا +ممزوج +ممزوجا +ممزوجاً +ممزوجة +ممسكا +ممسكة +ممسكًا +ممسوخ +ممسوس +ممسوسة +ممشوق +ممضة +ممطرة +ممفيس +ممكن +ممكنا +ممكنات +ممكناً +ممكنة +ممكنًا +مملاً +مملة +مملكة +مملكته +مملكتي +مملوء +مملوءا +مملوءة +مملوكة +مملَّحة +ممن +ممنهج +ممنوع +ممنوعا +ممنوعة +ممنيا +ممهد +ممهدا +ممهدة +ممهورة +ممهّداتها +مميتا +مميز +مميزا +مميزات +مميزاتها +مميزاً +مميزة +مميزًا +مميّز +مميِّزة +ممّن +من +منأى +منا +منابت +منابتها +منابر +منابرنا +منابع +منابعه +مناجاة +مناجاتها +مناجم +مناجمه +مناجمها +مناجيا +مناحل +مناحلهم +مناحم +مناحي +مناحيم +مناحٍ +مناخ +مناخا +مناخه +مناخها +مناخية +مناداته +مناداتي +منادمة +منادي +مناديا +مناديل +منارات +منارته +منازع +منازعات +منازل +منازلنا +منازله +منازلهم +منازلهن +مناسب +مناسبا +مناسبات +مناسباً +مناسبة +مناسبةعلى +مناسبتان +مناسبتين +مناسة +مناسك +مناسكها +مناشدة +مناص +مناصب +مناصبها +مناصرة +مناصروه +مناصفة +مناضل +مناضلا +مناطق +مناطقه +مناطقها +مناطقهم +مناظر +مناظرات +مناظرة +مناعات +مناعة +مناعته +مناعي +منافذ +منافذها +منافس +منافسا +منافساً +منافسة +منافسته +منافستها +منافسه +منافسيها +منافع +منافعه +منافعها +منافعهم +منافـذ +منافق +منافية +مناقب +مناقش +مناقشا +مناقشات +مناقشاً +مناقشة +مناقشته +مناقشتها +مناقصة +مناقضة +مناقير +منال +منامه +منامها +منامي +منان +مناهج +مناهجه +مناهجها +مناهجهم +مناهض +مناهضا +مناهضة +مناهل +مناهم +مناوئ +مناورات +مناورة +مناولة +مناولته +مناولتي +منبتّ +منبثق +منبر +منبرًا +منبسطة +منبع +منبعا +منبعاً +منبعه +منبعها +منبهة +منبهين +منتبجة +منتبها +منتبهين +منتج +منتجا +منتجات +منتجاتها +منتجاتهم +منتجاً +منتجة +منتجع +منتجعات +منتجعنا +منتجعين +منتجي +منتجيْن +منتحل +منتخب +منتخبات +منتخبة +منتدى +منتزع +منتزعا +منتزعاً +منتزه +منتزهات +منتسبا +منتسبة +منتسبين +منتشرة +منتشرون +منتشياً +منتصب +منتصبتين +منتصرة +منتصف +منتصفه +منتظر +منتظرا +منتظرة +منتظرين +منتظم +منتظمة +منتظمين +منتعشاً +منتقاة +منتمية +منتمين +منتهاه +منتهاها +منتهى +منتوجات +منجة +منجزات +منجزاته +منجزاً +منجم +منجمية +منجية +منح +منحة +منحت +منحتني +منحته +منحتها +منحدر +منحدرا +منحدرات +منحرفًا +منحك +منحنا +منحنتني +منحنى +منحني +منحنيا +منحنيات +منحنية +منحه +منحها +منحهم +منحوتاتهم +منحوتة +منحولة +منحى +منحي +منخرطًا +منخفض +منخفضاً +منخفضة +مندسا +مندفعاً +مندمجا +مندمجاً +مندمجة +مندهشا +مندهشاً +مندوب +مندوبا +مندوباً +مندوبًا +مندور +مندوس +منديلاً +منذ +منذئذ +منذر +منذرا +منذعام +منذورة +منزل +منزلا +منزلاً +منزلة +منزلتها +منزلك +منزلكم +منزلنا +منزله +منزلها +منزلهم +منزلي +منزلية +منزلين +منزليّ +منزه +منزوية +منساقا +منساقاً +منسجمًا +منسق +منسوب +منسوبا +منسوبي +منسوبيها +منسي +منسيا +منسية +منشآت +منشأ +منشأة +منشؤه +منشئها +منشئي +منشدين +منشطة +منشودة +منشور +منشورات +منشوراته +منشوراتها +منشورة +منشّطة +منصب +منصبا +منصباً +منصبه +منصبّاً +منصة +منصتا +منصر +منصرفا +منصف +منصفا +منصوبة +منصور +منصّات +منضبطة +منضبطًا +منضدة +منطق +منطقاً +منطقة +منطقةٍ +منطقتنا +منطقته +منطقتها +منطقتي +منطقه +منطقهم +منطقي +منطقيا +منطقياً +منطقية +منطقيته +منطلق +منطلقا +منطلقات +منطلقاته +منطلقاً +منطلقة +منطلقي +منطلقين +منطلقًا +منطوق +منظار +منظر +منظراً +منظرو +منظف +منظفا +منظم +منظما +منظمات +منظماً +منظمة +منظمتي +منظمي +منظمًا +منظور +منظورا +منظوره +منظورها +منظومات +منظومة +منظومية +منظّم +منع +منعاً +منعت +منعتنا +منعدم +منعدمة +منعزل +منعزلة +منعشة +منعطف +منعطفة +منعقدان +منعكسا +منعه +منعها +منعهم +منعوا +منـ +منفاه +منفاي +منفتح +منفتحات +منفتحاً +منفتحة +منفذ +منفذاً +منفذًا +منفرد +منفردا +منفرداً +منفردة +منفردين +منفصل +منفصلا +منفصلان +منفصلاً +منفصلة +منفصلين +منفصم +منفصمة +منفعة +منفعته +منفعتها +منفعية +منفوشين +منفى +منفي +منفياً +منفية +منفيين +منفّر +منقاداً +منقار +منقارا +منقباد +منقبة +منقحة +منقذ +منقسمة +منقضّة +منقطع +منقطعي +منقع +منقلبا +منقوش +منقوشة +منقوصاً +منقوصًا +منقوعًا +منقولات +منقولاته +منك +منكسراً +منكفئا +منكم +منكما +منكمشا +منكن +منكوبون +منكِ +منه +منها +منهج +منهجا +منهجه +منهجي +منهجية +منهجيته +منهك +منهكة +منهم +منهما +منهمكة +منهمكين +منهن +منهنَّ +منهيا +منهية +منو +منواله +منوط +منوطًا +منوعاً +منوعة +منى +مني +منيا +منير +منيرة +منيعا +منيعة +منيعًا +منيني +منّ +منّا +منّة +منَّا +مهاجر +مهاجرا +مهاجرة +مهاجرين +مهاجرًا +مهاجما +مهاجمة +مهاجمته +مهادنا +مهادنة +مهارات +مهاراته +مهارة +مهارته +مهارتها +مهاريهم +مهازل +مهام +مهامه +مهامهم +مهامي +مهاوي +مهب +مهتز +مهتم +مهتما +مهتماً +مهتمة +مهجنة +مهجور +مهجورة +مهجّنة +مهد +مهدئ +مهدئاً +مهدئة +مهداة +مهدت +مهدد +مهددا +مهدداً +مهددة +مهددًا +مهده +مهدها +مهدوا +مهدودًا +مهدي +مهدّدون +مهدَّاة +مهدِّداً +مهذارا +مهذب +مهذبة +مهرب +مهربة +مهربو +مهرة +مهرج +مهرجان +مهرجانات +مهرجاناً +مهرجانها +مهرجوي +مهرجين +مهرطقا +مهرطقون +مهرطقين +مهرولا +مهري +مهرّبة +مهشم +مهشمة +مهل +مهلا +مهلته +مهم +مهما +مهمات +مهماته +مهماتها +مهمان +مهماً +مهمة +مهمتان +مهمتنا +مهمته +مهمتها +مهمتهم +مهمتي +مهمتين +مهمشة +مهمـا +مهمل +مهملاً +مهملة +مهموم +مهموما +مهموماً +مهمين +مهمًا +مهمّشة +مهمًّا +مهن +مهنة +مهنتان +مهنتنا +مهنته +مهنتهم +مهنتي +مهندس +مهندسا +مهندسة +مهندسي +مهندسين +مهندسيين +مهندسًا +مهندسَيْن +مهنها +مهني +مهنياً +مهنية +مهنيًا +مهنيًّا +مهيء +مهيأ +مهيئ +مهيئون +مهيب +مهيبة +مهيج +مهيمنا +مهيمنة +مهين +مهينا +مهّد +مو +موئل +موئله +موئلها +مواء +مواءمة +مواؤها +موائد +موائدنا +موائدهم +موائله +موائلها +موات +مواتية +مواثيق +مواجع +مواجها +مواجهات +مواجهة +مواجهته +مواجهتها +مواجهين +مواد +موادا +مواداً +مواده +موادَّ +مواربة +موارد +مواردنا +موارده +مواردها +مواردهم +مواز +موازاة +موازن +موازنات +موازنة +موازنتها +موازياً +موازية +موازين +موازيًا +مواسم +مواسمها +مواسير +مواصفات +مواصلا +مواصلات +مواصلة +مواضع +مواضيع +مواضيعها +مواطن +مواطنا +مواطناً +مواطنة +مواطنــينا +مواطنه +مواطنها +مواطنهم +مواطنو +مواطنون +مواطنونا +مواطنوها +مواطنى +مواطني +مواطنين +مواطنيه +مواطنيهم +مواعيد +مواعيده +مواعيدها +موافق +موافقا +موافقات +موافقة +موافقته +مواقع +مواقعه +مواقعها +مواقعهم +مواقف +مواقفك +مواقفه +مواقفهم +مواقيتها +مواكب +مواكبة +موال +موالاة +موالد +مواليا +موالياً +مواليد +موانئ +موانع +مواني +مواهب +مواهبهم +موبوءة +موبيل +موت +موتاهم +موتاً +موتشي +موته +موتهم +موتي +موتيه +موثقا +موثقة +موثوق +موجات +موجة +موجتها +موجتين +موجز +موجزا +موجع +موجعاً +موجعة +موجه +موجها +موجهاً +موجهة +موجود +موجودا +موجودات +موجوداً +موجودة +موجودتين +موجودون +موجودين +موجودًا +موجّه +موجّها +موجّهة +موجَّه +موجَّهة +موح +موحا +موحد +موحدا +موحداً +موحدة +موحش +موحّدة +موحّدين +مود +موداعي +مودة +مودع +مودود +موديل +موديلات +موديلها +مور +مورثات +مورثة +مورثتين +مورثياً +مورجان +مورد +موردا +مورداً +موردًا +مورس +مورست +مورقة +مورلي +مورهاوس +مورو +موروا +موروث +موروثة +موروثنا +موريا +موريس +موريسكي +موز +موزارت +موزة +موزع +موزعا +موزعة +موزعين +موزمبيق +موزّعة +موزَّعةً +موستراس +موسر +موسع +موسعا +موسعات +موسعة +موسكو +موسم +موسماً +موسمه +موسمها +موسمياً +موسوعات +موسوعة +موسوعته +موسوعتين +موسوعية +موسى +موسيقار +موسيقارا +موسيقانا +موسيقاه +موسيقى +موسيقي +موسيقيا +موسيقياً +موسيقية +موسيقيين +موسيقيًّا +موسّع +موسّعة +موسَّعة +موشكين +موشوم +موشى +موشي +موشيه +موصل +موصلي +موصولة +موصومين +موضة +موضحا +موضحاً +موضحة +موضحًا +موضع +موضعه +موضعها +موضعي +موضعيا +موضعية +موضوع +موضوعا +موضوعات +موضوعاتها +موضوعان +موضوعاً +موضوعة +موضوعنا +موضوعه +موضوعها +موضوعي +موضوعيا +موضوعياً +موضوعية +موضوعين +موطئ +موطئا +موطن +موطناً +موطنه +موطنها +موطنهم +موظف +موظفا +موظفاً +موظفة +موظفون +موظفي +موظفية +موظفين +موظفيها +موظفيهم +موعد +موعدا +موعدنا +موعده +موعدها +موعوده +موفد +موفدا +موفدين +موفقاً +موفقة +موفور +موفي +موقد +موقع +موقعا +موقعاً +موقعنا +موقعه +موقعها +موقعهم +موقعي +موقف +موقفا +موقفاً +موقفك +موقفنا +موقفه +موقفها +موقفي +موقفينا +موقوفاً +موكب +موكل +موكلة +موكلين +مول +مولاكِ +مولانا +مولاي +مولت +مولد +مولداً +مولدة +مولده +مولدهم +مولدي +مولع +مولعا +مولعين +مولود +مولودا +مولوي +مولِّدةً +مومباي +مومبين +مومياء +مومياوات +مومياواتهم +مومياوين +مون +موناليزا +مونان +مونبولي +مونت +مونتاج +مونتانا +مونتجمري +مونتريال +مونتفرات +مونتي +موندوس +مونرو +مونسانتو +مونسـانتو +مونو +مونولوجاً +موهبة +موهبته +موهوب +موهوباً +موهوبين +مويتشي +موّل +مي +ميا +ميادين +ميالا +ميامي +ميانمار +مياه +مياها +مياهه +مياهها +ميبندازول +ميت +ميتا +ميتان +ميتاً +ميتة +ميتران +ميترلنك +ميتسوبيشي +ميتشجان +ميتشل +ميتشيل +ميثاق +ميثانول +ميثوكسي +ميجاوات +ميخائيل +ميخائيلوف +ميد +ميدالية +ميداليتان +ميدان +ميدانا +ميدانه +ميدانها +ميدانى +ميداني +ميدانيا +ميدانية +ميدانًا +ميدنيكوف +ميدو +مير +ميراث +ميراثاً +ميراثه +ميرامار +ميران +ميردال +ميرزا +ميرسك +ميرك +ميرل +ميري +ميريت +ميريديان +ميز +ميزا +ميزات +ميزاته +ميزاتها +ميزان +ميزانيات +ميزانياتهم +ميزانية +ميزانيته +ميزانيتها +ميزانيتي +ميزة +ميزةً +ميزت +ميزته +ميزوا +ميساء +ميسرة +ميسم +ميسورا +ميسورة +ميسوري +ميسيسيبي +ميسّر +ميسّراً +ميسّرة +ميشال +ميشان +ميشليه +ميشيل +ميعاده +ميفلوكين +ميكال +ميكانيكا +ميكانيكي +ميكانيكياً +ميكانيكية +ميكرو +ميكروب +ميكروبات +ميكروجراما +ميكروجرامات +ميكروسكوبي +ميكروسكوبية +ميكروفون +ميكروفيلم +ميكرومتراً +ميكروميتر +ميكروناً +ميكلسون +ميكنة +ميكيل +ميل +ميلا +ميلاد +ميلادك +ميلاده +ميلادي +ميلادية +ميلان +ميلانو +ميلاً +ميللر +ميلودي +ميلي +ميليشيات +مينا +ميناء +ميناءين +مينائها +مينة +ميندو +مينه +مينوس +مينيسوتا +ميول +ميوله +ميولهم +ميولى +ميونيخ +ميّالة +ميّزت +ميّزه +مَا +مَحكًّا +مَدَّت +مَريتش +مَن +مَنٍّ +مَنْ +مُبرّرة +مُتأمِّلاً +مُجرَّد +مُخلَّط +مُخيفة +مُدرّساً +مُدهِش +مُرة +مُرضية +مُزْن +مُستحَقٌ +مُستمرة +مُشاحّة +مُصاب +مُصرًّا +مُعوِّقًا +مُلقى +مُنتج +مُنتجا +مُنح +مُنحت +مُنحتها +مُنحها +مُهاب +مُوثّق +مُيز +مِقْعَدَة +مِن +مِنكُمْ +مِنَ +مَّا +مَّن +مِّن +مِّنْكُم +ن +نأتي +نأخذ +نأخذكما +نأخذه +نأكل +نأكله +نألو +نأمل +نؤثر +نؤجل +نؤدي +نؤكد +نؤمل +نؤمن +ناءٍ +نائب +نائبا +نائباً +نائبة +نائم +نائماً +نائمة +نائمين +نائية +ناب +نابذات +نابض +نابع +نابعا +نابعة +نابلس +نابليون +نابولي +ناتئ +ناتئة +ناتج +ناتجا +ناتجة +ناتجتان +ناتجًا +ناثال +ناثر +ناجح +ناجحا +ناجحاً +ناجحة +ناجحون +ناجحين +ناجع +ناجعة +ناجم +ناجما +ناجمة +ناجي +ناجين +ناحوم +ناحية +ناحيته +ناحيتها +ناحيتي +ناخب +ناخت +ناد +نادت +نادته +نادر +نادرا +نادراً +نادرة +نادرتين +نادرين +نادرًا +نادم +نادمات +نادماً +نادوا +نادى +نادي +ناديا +نادياً +نادية +ناديته +نادين +ناديناك +نار +نارا +ناراً +ناره +نارها +نارية +نارين +ناريّ +نازعة +نازك +نازل +نازلا +نازلة +ناس +ناسا +ناسج +ناسخًا +ناسه +ناسي +ناسياً +ناشجاً +ناشد +ناشدت +ناشدته +ناشر +ناشرة +ناشري +ناشز +ناشطة +ناشطون +ناشطي +ناصح +ناصحاً +ناصر +ناصع +ناصعات +ناصعة +ناصـــيــف +ناصف +ناصية +ناصيتك +ناصيف +ناضجة +ناضران +ناضل +ناضلت +ناطحات +ناطق +ناطقاً +ناطقة +ناظري +ناظريها +ناظريّا +ناظم +ناظمها +ناعسة +ناعم +ناعما +ناعماً +ناعمة +نافارو +نافت +نافخي +نافذ +نافذة +نافذةالقطار +نافذةٍ +نافذته +نافذتي +نافس +نافستك +نافستها +نافضا +نافضات +نافع +نافعا +نافعاً +نافعة +نافلة +نافورة +نافيا +نافية +ناقة +ناقته +ناقد +ناقدا +ناقداً +ناقدة +ناقدها +ناقش +ناقشت +ناقشتموه +ناقشه +ناقص +ناقصا +ناقصة +ناقصًا +ناقض +ناقل +ناقلاً +ناقلة +ناقما +ناقمة +ناقوس +نال +نالت +نالتهم +ناله +نالها +نام +ناما +نامة +نامت +نامي +ناميبيا +نامية +ناهضة +ناهيت +ناهيك +ناووس +ناي +نايتس +نايجل +ناين +نايه +نب +نبأ +نبات +نباتات +نباتي +نباتيا +نباتياً +نباتية +نباح +نبارح +نبتة +نبتت +نبتعد +نبحث +نبحثه +نبخل +نبدأ +نبذ +نبذة +نبذل +نبذهم +نبرأها +نبراسكا +نبرة +نبرته +نبض +نبضا +نبضات +نبضاتها +نبضة +نبع +نبعا +نبعة +نبعها +نبقى +نبقي +نبل +نبلا +نبلاء +نبني +نبنيها +نبوءات +نبوءة +نبوخذ +نبوخذنصر +نبي +نبياً +نبيل +نبيلة +نبيه +نبيهور +نبّهه +نبْشا +نت +نتأثر +نتأكد +نتأمل +نتأمله +نتأهب +نتائج +نتائجه +نتائجها +نتائجهم +نتابع +نتابعها +نتاج +نتاجه +نتاجها +نتاجهن +نتاجي +نتاجٌ +نتالي +نتبادل +نتبرع +نتبوؤها +نتبين +نتتبع +نتج +نتجاهل +نتجت +نتجمع +نتجنب +نتجول +نتحدث +نتحدّث +نتحرر +نتحرك +نتحسّر +نتحمل +نتحملها +نتحوّل +نتخذ +نتخرج +نتخطاه +نتخطاها +نتخلى +نتخوف +نتخيل +نتداول +نتذكر +نترجم +نترك +نتركها +نتساءل +نتسامح +نتشابه +نتصرف +نتطرق +نتطلع +نتظارنا +نتظاهر +نتعامل +نتعاون +نتعجب +نتعرض +نتعرف +نتعرّض +نتعلم +نتعمد +نتعمق +نتعود +نتعوَّد +نتف +نتفرّس +نتفق +نتقبل +نتقدم +نتقن +نتكلم +نتلافى +نتلقى +نتلمس +نتمكن +نتملك +نتمنى +نتمي +نتميز +نتنازل +نتناول +نتناوله +نتنبأ +نتنة +نتنزّه +نتنصل +نتنفس +نتنه +نتهاون +نتهم +نتوء +نتواصل +نتوجه +نتوخاه +نتوسل +نتوقع +نتوقعها +نتوقف +نتوهّم +نتيجة +نتيجةً +نتيجته +نتيجتها +نتيحها +نتيقن +نثبت +نثر +نثرا +نثراء +نثراً +نثق +نثقبها +نثيث +نج +نجا +نجاة +نجاتي +نجاح +نجاحا +نجاحات +نجاحاته +نجاحاً +نجاحه +نجاحها +نجاحي +نجاحًا +نجادل +نجارا +نجاراً +نجارين +نجاسة +نجاشي +نجاه +نجاهد +نجبه +نجت +نجح +نجحت +نجحنا +نجحوا +نجد +نجدت +نجدتك +نجدد +نجده +نجدها +نجدهم +نجران +نجرب +نجره +نجرو +نجزم +نجعل +نجعله +نجـاحـها +نجلب +نجلس +نجله +نجليه +نجم +نجما +نجماً +نجمة +نجمت +نجمع +نجمعها +نجمل +نجمه +نجمها +نجمهم +نجمي +نجمًا +نجنى +نجهز +نجهلها +نجوب +نجوس +نجوع +نجوم +نجوما +نجومه +نجومها +نجومية +نجيب +نجيباً +نجيبة +نجيم +نح +نحاتا +نحار +نحارب +نحاسية +نحافتها +نحافظ +نحاكي +نحالو +نحاور +نحاول +نحب +نحبذ +نحبه +نحبهم +نحت +نحتاج +نحتاجه +نحترم +نحتضن +نحتفظ +نحتفل +نحتفي +نحتنا +نحته +نحدثه +نحدد +نحذر +نحذف +نحر +نحرر +نحرص +نحرمهم +نحس +نحسد +نحصدها +نحصر +نحصل +نحضر +نحضره +نحط +نحظى +نحـتاجه +نحـو +نحف +نحفظ +نحقق +نحل +نحلة +نحلم +نحمل +نحمله +نحملها +نحمي +نحن +نحو +نحواً +نحوت +نحوك +نحونا +نحوه +نحوها +نحوهم +نحوي +نحوٍ +نحى +نحيا +نحيطه +نحيف +نحيفين +نحيل +نحيلاً +نحيلة +نحينا +نحييكم +نحّى +نحّيتك +نخاف +نخال +نخامية +نخب +نخبئ +نخبا +نخبة +نخبتنا +نخبر +نخبوي +نختار +نختبئ +نخترع +نختزنه +نختصرها +نختصها +نختفي +نختلف +نختم +نخر +نخرج +نخشى +نخطط +نخفيها +نخل +نخلة +نخلته +نخلط +نخور +نخوض +نخيل +نخيلها +ندا +نداء +نداءات +نداءه +ندائه +ندافع +نداً +ندب +ندبات +ندبة +ندبت +ندخل +ندر +ندرة +ندرت +ندرج +ندرس +ندرك +ندركها +ندري +ندع +ندعم +ندعمهم +ندعو +ندعوك +ندعوه +ندعي +ندفعها +ندقق +ندلل +ندم +ندموا +ندوات +ندواته +ندوة +ندوته +ندور +ندوس +ندى +نديم +نديما +ندين +ندّت +ندّدنا +ندٌّ +نذالته +نذر +نذراً +نذرت +نذريـّها +نذكر +نذكرك +نذهب +نذير +نذيرا +نر +نراقب +نراك +نراه +نراها +نراهم +نربط +نربّي +نرتاح +نرتجف +نرتشف +نرتكبه +نرجح +نرجع +نرجو +نرجوك +نرجّح +نرحل +نرد +نردّ +نرسخ +نرسل +نرسلها +نرسم +نرشّها +نرصد +نرضى +نرفال +نرفض +نركز +نرمي +نرميها +نره +نرى +نري +نريد +نريده +نريدها +نزار +نزاع +نزاعاً +نزال +نزاهتها +نزح +نزحت +نزحف +نزرع +نزع +نزعات +نزعاتنا +نزعة +نزعتي +نزعج +نزعها +نزف +نزقة +نزقه +نزل +نزلات +نزلت +نزلوا +نزهة +نزوة +نزوح +نزودهم +نزورها +نزوع +نزول +نزولنا +نزوله +نزوى +نزوّد +نزيف +نزيل +نزيلا +نزيلة +نزيهًا +نزّل +نس +نسأل +نسأله +نسألها +نساء +نساؤه +نسائنا +نسائها +نسائهم +نسائياً +نسائية +نسابا +نساخها +نسارع +نساعدكم +نسافر +نساندك +نساهم +نساير +نسب +نسبا +نسباً +نسبة +نسبت +نسبته +نسبتها +نسبتهم +نسبر +نسبق +نسبه +نسبها +نسبهم +نسبى +نسبي +نسبيا +نسبياً +نسبية +نسبيًا +نسبًا +نستأجر +نستأنس +نستبعد +نستبق +نستثمر +نستحثها +نستحسن +نستحوذ +نستخدم +نستخدمها +نستخلص +نستدرك +نستدله +نستذكر +نستسلم +نستشهد +نستطع +نستطلع +نستطيع +نستعد +نستعرض +نستعمله +نستعيد +نستعيض +نستعين +نستفيد +نستقبل +نستقدم +نستقطب +نستكتب +نستلهم +نستلهمه +نستمتع +نستمدها +نستمر +نستمع +نستنتج +نستهدف +نستهم +نستي +نسج +نسجت +نسجتا +نسجل +نسجها +نسحقهم +نسخ +نسخة +نسخت +نسخته +نسختها +نسخها +نسدل +نسرا +نسراً +نسرق +نسع +نسعى +نسعي +نسق +نسقت +نسك +نسكن +نسل +نسلط +نسمات +نسمة +نسمح +نسمع +نسمعه +نسمي +نسميه +نسميها +نسمّيه +نسهر +نسوة +نسور +نسوه +نسوياً +نسوية +نسى +نسي +نسيء +نسيا +نسيان +نسياناً +نسيانه +نسيانها +نسياني +نسيبة +نسيبًا +نسيت +نسيتني +نسيتها +نسيتُ +نسيج +نسيجا +نسيجه +نسيجها +نسير +نسينا +نسيه +نسيها +نشأ +نشأة +نشأت +نشأته +نشأتها +نشأتهم +نشأتي +نشأنا +نشاء +نشارك +نشاط +نشاطا +نشاطات +نشاطاتك +نشاطاته +نشاطاتها +نشاطاتهم +نشاطاتي +نشاطاً +نشاطه +نشاطها +نشاطهم +نشاهد +نشاهده +نشاهدها +نشب +نشبت +نشبر +نشبع +نشبه +نشبّهه +نشبّهها +نشتري +نشتهر +نشجع +نشحذ +نشحن +نشر +نشراته +نشرة +نشرت +نشرتنا +نشرته +نشرتها +نشرحها +نشره +نشرها +نشط +نشطاء +نشطاً +نشطة +نشطت +نشعر +نشك +نشكو +نشهد +نشهدها +نشوء +نشوة +نشيج +نشيد +نشيده +نشير +نشيطا +نشيطان +نشيطاً +نشيطة +نشيطي +نشَّطت +نص +نصا +نصائح +نصائحي +نصائحَ +نصادر +نصادف +نصادفه +نصار +نصارع +نصارى +نصاعة +نصاً +نصب +نصبت +نصبح +نصبه +نصحته +نصحني +نصحه +نصحو +نصحوه +نصدر +نصدرها +نصدق +نصر +نصرا +نصرالله +نصراني +نصرانية +نصرة +نصرته +نصرخ +نصرهم +نصري +نصطدم +نصعد +نصف +نصفه +نصفها +نصفهم +نصفي +نصفُ +نصل +نصلب +نصلح +نصلي +نصنا +نصنع +نصه +نصها +نصور +نصوص +نصوصا +نصوصهنّ +نصوصي +نصوّر +نصوُّح +نصي +نصيب +نصيباً +نصيبك +نصيبه +نصيبها +نصيبهم +نصيبي +نصيحة +نصيحتك +نصير +نصيره +نصًا +نصّ +نصّا +نصّاً +نصّت +نصّك +نصّه +نصٍّ +نضارات +نضارة +نضال +نضالنا +نضاله +نضالها +نضاليا +نضالية +نضبت +نضج +نضجاً +نضجه +نضجها +نضجًا +نضحكها +نضرب +نضطر +نضع +نضعه +نضمن +نضوب +نضوبة +نضوج +نضيع +نضيعَ +نضيف +نضّر +نط +نطؤها +نطاق +نطاقاً +نطاقها +نطالب +نطرحه +نطق +نطقا +نطقالراء +نطقت +نطقها +نطلب +نطلق +نطمح +نطهر +نطور +نطيح +نطيع +نظائر +نظائرها +نظائرهم +نظارات +نظاراتهم +نظارة +نظارت +نظارته +نظارتها +نظافة +نظام +نظاما +نظاماً +نظامنا +نظامه +نظامها +نظامهم +نظامية +نظاميين +نظامًا +نظر +نظرا +نظرائها +نظرائهم +نظرات +نظراته +نظراتها +نظراتهم +نظراتهما +نظراتي +نظراتِهِ +نظراً +نظرة +نظرةً +نظرت +نظرتنا +نظرته +نظرتهم +نظرتي +نظرتين +نظركم +نظرنا +نظره +نظرهم +نظروا +نظري +نظريا +نظريات +نظرياته +نظرياتها +نظرياتهم +نظرياً +نظرية +نظريته +نظريًا +نظريًّا +نظرًا +نظـري +نظفت +نظل +نظلمه +نظم +نظمت +نظمته +نظمتها +نظمه +نظمها +نظن +نظهر +نظير +نظيرا +نظيراتها +نظيرة +نظيرتها +نظيره +نظيرية +نظيريه +نظيف +نظيفا +نظيفاً +نظيفة +نظَّمه +نعاس +نعال +نعالاً +نعالج +نعالجها +نعاني +نعانيه +نعبر +نعت +نعتبر +نعتبره +نعترف +نعتز +نعتقد +نعتمد +نعته +نعتها +نعثر +نعد +نعده +نعرض +نعرضها +نعرف +نعرفة +نعرفه +نعرفها +نعرفهم +نعرِّفهم +نعش +نعشق +نعصر +نعط +نعطي +نعطيه +نعكس +نعكف +نعلق +نعلم +نعلمه +نعلمهم +نعلن +نعلنها +نعلِّق +نعم +نعمان +نعمة +نعمت +نعمتُ +نعمل +نعنى +نعني +نعنيه +نعود +نعومة +نعومي +نعى +نعي +نعيد +نعيش +نعيشه +نعيشها +نعيم +نعيمة +نعيمي +نـبـض +نـظمت +نـظيفة +نفاثة +نفاد +نفاذاً +نفاذة +نفاضل +نفايات +نفاياتهم +نفت +نفتتحه +نفتح +نفتحها +نفتخر +نفترض +نفتقد +نفتقده +نفتقدها +نفتقدْ +نفتقر +نفحات +نفحة +نفخ +نفخر +نفد +نفدت +نفذ +نفذت +نفذه +نفذها +نفر +نفرح +نفرد +نفرش +نفرض +نفرٌ +نفرّق +نفس +نفسانية +نفساً +نفسح +نفسـي +نفسك +نفسكِ +نفسه +نفسها +نفسهم +نفسى +نفسي +نفسيا +نفسياً +نفسية +نفسيته +نفسينا +نفسيّا +نفسًا +نفسِ +نفصلها +نفصلهم +نفصّل +نفض +نفضت +نفضل +نفط +نفطن +نفع +نفعا +نفعل +نفعلها +نفعه +نفعية +نفق +نفقات +نفقة +نفقتك +نفقته +نفقتها +نفكر +نفكّر +نفمبر +نفنّد +نفهم +نفهمه +نفهمهم +نفوذ +نفوذه +نفوذها +نفوذهم +نفور +نفوراً +نفوس +نفوسنا +نفوسهم +نفوق +نفى +نفي +نفيس +نفيسة +نفيه +نفّاذ +نفّذوا +نقاء +نقابة +نقابل +نقابله +نقابي +نقابية +نقاد +نقاده +نقار +نقارن +نقاش +نقاشا +نقاشات +نقاط +نقالة +نقبل +نقبله +نقتاتُ +نقتحمها +نقترب +نقترح +نقتل +نقد +نقدا +نقدته +نقدر +نقدم +نقدمه +نقدمها +نقده +نقدي +نقديا +نقدياً +نقدية +نقدًا +نقدّر +نقدّم +نقر +نقرأ +نقرأه +نقرؤه +نقرات +نقراته +نقرة +نقرر +نقش +نقشت +نقص +نقصا +نقصان +نقصاً +نقصت +نقصد +نقصده +نقصي +نقضي +نقطة +نقطتين +نقطع +نقطن +نقطها +نقـــاش +نقف +نقل +نقلا +نقلات +نقلاً +نقلة +نقلت +نقلته +نقلتها +نقلده +نقلنا +نقله +نقلها +نقلهم +نقلوا +نقلي +نقلّب +نقم +نقمة +نقنع +نقود +نقودا +نقوداً +نقودك +نقوده +نقودهم +نقودي +نقوش +نقوشا +نقوشها +نقول +نقولا +نقوله +نقولها +نقوم +نقوّم +نقي +نقيا +نقيبًا +نقية +نقير +نقيس +نقيض +نقيضا +نقيم +نقّاد +نقّاده +نقّاش +نقّب +نكاد +نكبات +نكباته +نكبة +نكبّل +نكتب +نكتبه +نكتة +نكتشف +نكتفي +نكران +نكرمهم +نكس +نكسة +نكسها +نكشف +نكفكف +نكلا +نكلف +نكمل +نكن +نكهة +نكهته +نكون +نكوِّن +نلاحظ +نلاحظه +نلاحظها +نلبس +نلت +نلتحق +نلتزم +نلتف +نلتقي +نلجأ +نلحظ +نلحظه +نلحظها +نلحق +نلزم +نلعب +نلق +نلقى +نلقي +نللينو +نلمح +نلمس +نلمسه +نلمسها +نلوب +نما +نماؤها +نمائية +نماذج +نماذجها +نمارس +نمارسها +نمت +نمتلك +نمثل +نمر +نمرا +نمزج +نمساوية +نمسح +نمشي +نمضي +نمط +نمطا +نمطاً +نمطك +نمطها +نمطية +نمطًا +نمل +نملأ +نملك +نمله +نمنع +نمو +نموا +نمواً +نموت +نموذج +نموذجا +نموذجاً +نموذجي +نموذجياً +نموذجية +نموذجين +نموذجيّ +نموذجًا +نمور +نموه +نموها +نموهم +نموي +نموًا +نمير +نميراً +نميري +نميرية +نميز +نميل +ننار +نناقش +نناقشه +ننام +ننتبه +ننتج +ننتظر +ننتظرها +ننتقل +ننتمي +ننتهي +ننجح +ننجز +ننجزه +نندد +ننزل +ننسى +ننشئ +ننشده +ننشدها +ننشر +ننشرها +ننصح +ننطلق +ننظر +ننظم +ننعطف +ننفذ +ننفض +ننفضُ +ننفق +ننفقه +ننقل +ننقلها +ننكر +ننمي +ننه +ننهل +ننهي +ننوي +نه +نها +نهائي +نهائيا +نهائيات +نهائياً +نهائية +نهائيًّا +نهاجم +نهاد +نهار +نهارا +نهارات +نهاراً +نهاره +نهارها +نهاري +نهارية +نهاك +نهاه +نهاهم +نهايات +نهاية +نهايته +نهايتها +نهب +نهبت +نهبوا +نهبوه +نهتم +نهج +نهجا +نهجاً +نهجه +نهجها +نهجي +نهجًا +نهد +نهدف +نهر +نهرا +نهراً +نهرب +نهرو +نهري +نهرًا +نهرٌ +نهز +نهشا +نهض +نهضات +نهضة +نهضت +نهضتها +نهضتهم +نهضتُ +نهضنا +نهضوا +نهضوي +نهل +نهلا +نهلة +نهم +نهمل +نهمي +نهوض +نهوند +نهى +نهيأ +نهير +نوئيل +نواب +نواة +نواةً +نواته +نواتها +نواجه +نواجهه +نواجهها +نواح +نواحي +نوادر +نوادى +نوادي +نوارس +نواز +نواس +نواصل +نوافذ +نوافذها +نوافذهم +نوافي +نوافير +نواقيس +نوال +نواويس +نواياها +نواياهم +نواياي +نوب +نوبات +نوبة +نوبل +نوتردام +نوتنجهام +نوتيّ +نوجب +نوجد +نوجه +نوح +نود +نودع +نور +نورا +نوراً +نورتون +نورث +نورثها +نورد +نورس +نورسا +نورسك +نورك +نورمان +نورهان +نوروز +نوروود +نوري +نوزت +نوزع +نوشيره +نوصيكم +نوضح +نوع +نوعا +نوعان +نوعاً +نوعه +نوعها +نوعي +نوعية +نوعين +نوعًا +نوفارتس +نوفارتيس +نوفاليس +نوفجورد +نوفر +نوفرها +نوفق +نوفمبر +نوفورتوني +نوفيكوف +نوق +نوقشت +نوقف +نول +نولي +نوم +نوماً +نومه +نومها +نومهم +نومي +نون +نونايل +نووي +نوويا +نووياً +نووية +نوويد +نوويّ +نويمان +نوّهت +ني +نيابة +نياراجي +نياركوس +نياط +نيام +نياماً +نيبال +نيبهور +نية +نيت +نيتشر +نيته +نيتي +نيجاتيف +نيجيريا +نيدر +نير +نيران +نيرانا +نيرن +نيروبي +نيرودا +نيسا +نيسان +نيستوكا +نيسلون +نيشان +نيشن +نيفاً +نيقولاس +نيقولاى +نيقية +نيقيه +نيك +نيكست +نيكسون +نيكل +نيكوس +نيكوليتا +نيل +نيلسون +نيله +نيلها +نيلوس +نيلي +نيمم +نينوى +نيو +نيوتروناً +نيوتن +نيوجيرسى +نيودلهى +نيودلهي +نيوز +نيوزيلندا +نيومكسيكو +نيومي +نيويورك +نيويوركية +نيّفت +نيِّر +نَأْي +نَحْبَهُ +نَص +نَفَحـتنا +نُبتلع +نُبرر +نُبهر +نُبْحر +نُتخم +نُدخل +نُدرةً +نُزُلها +نُسهم +نُسَخ +نُشرت +نُظمت +نُعجَب +نُفق +نُقذف +نُقشت +نُقلت +نُلْق +نُمعن +نُواحه +نِمنَا +نّقص +ه +هؤلاء +ها +هاأنا +هاأنت +هاأنذا +هائجاً +هائجًا +هائل +هائلا +هائلاً +هائلة +هائمة +هابطاً +هابطة +هابطًا +هابل +هات +هاتان +هاتفه +هاتفيا +هاتفية +هاتفيين +هاته +هاتوا +هاتي +هاتيراسّ +هاتيك +هاتين +هاج +هاجر +هاجرت +هاجروا +هاجس +هاجساً +هاجسه +هاجسي +هاجعة +هاجم +هاجمة +هاجمت +هاجمته +هاجموا +هاجموني +هاجموه +هاجو +هاد +هادئ +هادئا +هادئاً +هادئة +هادئين +هادرة +هادفاً +هاديء +هاذي +هار +هاربا +هارباً +هاربرز +هارستنج +هارعا +هارفارد +هارفرد +هارلان +هارلم +هارمر +هارموني +هارود +هارون +هاريس +هاريسون +هاس +هاسكل +هاشم +هاف +هافانا +هافل +هاكرز +هالات +هالة +هالفلوس +هالك +هالكة +هالو +هالوديول +هالوفانترين +هاليفاكس +هالييتاس +هام +هاما +هامات +هاماً +هامبولدت +هامبون +هامة +هامدة +هامر +هامرسميث +هامس +هامسا +هامساً +هامستيد +هامسًا +هامش +هامشاً +هامشياً +هامشية +هامشيين +هامّاً +هامّة +هان +هانئ +هانز +هانم +هانوي +هاني +هاهم +هاهما +هاهو +هاهي +هاواى +هاواي +هاورد +هاوس +هاوسي +هاويا +هايتي +هايد +هايدرو +هاير +هايكو +هاييتي +هب +هباء +هبات +هبة +هبت +هبط +هبطت +هبطوا +هبوا +هبوب +هبوط +هبوطا +هبوطاً +هبوطهم +هبّ +هبّات +هبّة +هبّت +هتافاتهم +هتف +هتفنا +هتلر +هجاه +هجاها +هجر +هجرات +هجرة +هجرته +هجرتها +هجرتهم +هجرتي +هجرها +هجروها +هجرية +هجم +هجمات +هجماته +هجمة +هجمت +هجمنا +هجوم +هجوما +هجوماً +هجومه +هجين +هدأ +هدأة +هدأت +هدأتهم +هدا +هدارة +هدامة +هداهم +هدايا +هداياه +هداية +هدتني +هدد +هددت +هددوه +هدر +هدراً +هدرها +هدسون +هدف +هدفا +هدفاً +هدفتُ +هدفنا +هدفه +هدفها +هدفهم +هدفى +هدفًا +هدم +هدمت +هدمه +هدمها +هدموا +هدنة +هده +هدهدنا +هدوء +هدوءاً +هدوئه +هدومي +هدى +هدي +هدية +هديتي +هدير +هديراً +هديه +هدّأته +هدّاما +هدّد +هدَّها +هذ +هذا +هذان +هذاوخاصة +هذة +هذه +هذي +هذيا +هذيانه +هذين +هراء +هرب +هربا +هرباً +هرباًمن +هربت +هربرت +هربنا +هربه +هرتزل +هرج +هرجة +هرطقات +هرطقية +هرع +هرعت +هرعنا +هرفيه +هرقل +هرلر +هرم +هرمز +هرمون +هرمونية +هروب +هروبه +هروخيه +هرون +هريرة +هز +هزاز +هزة +هزت +هززت +هزلية +هزمت +هزنا +هزني +هزيع +هزيلاً +هزيمة +هزيمته +هزيمتها +هزّ +هزّت +هزَّت +هس +هستيري +هستيريا +هسيسهم +هش +هشا +هشاشة +هشام +هشّ +هشّة +هشَّة +هضابه +هضبة +هضم +هضمت +هضمها +هطل +هطلت +هطول +هعير +هـ +هـذا +هـــو +هفن +هفوت +هكتار +هكتارات +هكذا +هكسلي +هكـذا +هل +هلا +هلاك +هلاكا +هلال +هلام +هلامهم +هلاميات +هلامية +هلاّ +هلع +هلعا +هلعاً +هلعًا +هليوبوليس +هم +هما +همام +هماً +همة +همته +همتها +همجيتهم +همدت +همزات +همزة +همس +همسا +همسات +همساً +همسة +همست +همشه +هملت +همم +هممت +هممكم +همنجواي +همه +همها +همهمات +همهمت +هموم +همومها +همومي +همي +همّ +همّا +همّة +همّه +همّي +همَّ +همَّة +همِّش +هن +هنأت +هنا +هناك +هنالك +هنتر +هنتسمان +هنتنجتون +هندامها +هندسة +هندسى +هندسي +هندسياً +هندسية +هندي +هندية +هنري +هني +هنيئة +هنيه +هنيهة +هنَّ +هه +ههنا +هو +هواء +هواءها +هوائية +هواة +هواتف +هواجس +هواجسه +هوادة +هواليبيك +هواه +هوايات +هواية +هوايته +هوايتهم +هوايتي +هوباحث +هوة +هوت +هوتميل +هوتيل +هوجم +هوجو +هورموناتها +هورن +هوز +هوس +هوسا +هوسي +هوف +هوفمان +هوكست +هوكنج +هول +هولاند +هولاً +هولت +هولدن +هولمز +هولندا +هولنداي +هولندي +هولندية +هولوواي +هوليدى +هوليدي +هوليوود +هولِ +هومايون +هومستوباريوس +هومير +هوميروس +هون +هونج +هوندو +هونها +هونيكمان +هوى +هويات +هوياتهم +هوية +هويتنا +هويته +هويتها +هويتهم +هويتي +هوّة +هوّز +هى +هي +هيأت +هيئ +هيئات +هيئاتهن +هيئة +هيئته +هيئتها +هيا +هياج +هياكل +هياكلها +هيبة +هيبتها +هيبرا +هيبون +هيجو +هيدرو +هيدروجين +هيدروجينية +هيدروكسيد +هيدلبرج +هيدلي +هيرا +هيربرت +هيرتزل +هيرفي +هيرودوت +هيرودوتس +هيرودوس +هيروشيما +هيس +هيكل +هيكلا +هيكلاً +هيكلة +هيكله +هيكلهم +هيكلياتها +هيكلية +هيلانة +هيلبيك +هيلتون +هيلجا +هيلموت +هيمن +هيمنة +هين +هيناً +هيني +هيهات +هيو +هيوارد +هيوز +هيوستن +هيولية +هيومان +هيومايون +هيّأني +هيَّأها +هَاجَرُوا +هَرَم +هَزُلت +هَلْ +هُزُعا +هِرَم +و +وآ +وآباء +وآثار +وآثاره +وآثارها +وآثام +وآثر +وآثرنا +وآخذ +وآخر +وآخرة +وآخرتها +وآخرها +وآخرون +وآخرى +وآخرين +وآداب +وآدابا +وآدابه +وآدابها +وآدم +وآراء +وآراءه +وآراؤه +وآرائه +وآرائهم +وآسيا +وآسيوية +وآشور +وآفاق +وآكل +وآل +وآلا +وآلات +وآلاف +وآلام +وآلياتها +وآمال +وآمالهم +وآمل +وآمن +وآمنة +وآن +وآهٍ +وآياته +وآية +وأ +وأؤدي +وأؤكد +وأئمة +وأئمته +وأب +وأباطيل +وأباكم +وأبانت +وأبتعد +وأبحاث +وأبحاثه +وأبحاثهم +وأبخرة +وأبدأ +وأبدا +وأبداننا +وأبداً +وأبدت +وأبدع +وأبدعوا +وأبدوا +وأبدى +وأبدي +وأبدية +وأبراج +وأبرز +وأبرزته +وأبرق +وأبصارنا +وأبصر +وأبعاد +وأبعادها +وأبعد +وأبقت +وأبقراط +وأبقى +وأبقيت +وأبكاهم +وأبلوا +وأبناء +وأبنائه +وأبنائها +وأبنائهم +وأبنائهما +وأبنائي +وأبنية +وأبها +وأبهاء +وأبهة +وأبو +وأبوابها +وأبوه +وأبوهم +وأبي +وأبيض +وأبيه +وأبيها +وأبّهة +وأتأكد +وأتأمل +وأتأملها +وأتابع +وأتابعها +وأتابكتهم +وأتاح +وأتاحت +وأتباعه +وأتباعها +وأتبع +وأتبعتهم +وأتبعها +وأتحدث +وأتحرّر +وأتحسس +وأتخيل +وأتذكر +وأتذوقه +وأترأس +وأتراحها +وأتراحهم +وأتراكا +وأتربة +وأترجاه +وأترك +وأتركها +وأتساءل +وأتصور +وأتعامل +وأتعاون +وأتعجب +وأتعرف +وأتفحص +وأتقدم +وأتقن +وأتقنها +وأتلو +وأتم +وأتمشى +وأتمنى +وأتمّ +وأتوقع +وأتى +وأتيح +وأتيحت +وأثاث +وأثاثها +وأثار +وأثارت +وأثاناسيوس +وأثبت +وأثبتت +وأثبتوا +وأثخنوها +وأثر +وأثره +وأثرها +وأثقل +وأثمان +وأثمر +وأثمرت +وأثناء +وأثناءها +وأثنى +وأثوابهن +وأثّر +وأجاب +وأجاثا +وأجاد +وأجادت +وأجبت +وأجبرتهم +وأجتهد +وأجد +وأجدادنا +وأجدادهم +وأجدد +وأجدر +وأجدكِ +وأجدني +وأجدّ +وأجروا +وأجرى +وأجريت +وأجز +وأجزاء +وأجزائه +وأجزل +وأجزلَ +وأجسادنا +وأجسادهم +وأجسام +وأجعل +وأجلس +وأجمل +وأجمله +وأجملها +وأجنابها +وأجنبية +وأجنحة +وأجهزة +وأجهزتها +وأجهزتهم +وأجواء +وأجود +وأجيب +وأجّجنا +وأحادي +وأحادية +وأحاديث +وأحاديثنا +وأحاسيسها +وأحاط +وأحاطا +وأحاطت +وأحالها +وأحاورهم +وأحاول +وأحب +وأحبابي +وأحببت +وأحببتها +وأحببتُ +وأحبه +وأحبها +وأحجامه +وأحجمت +وأحد +وأحداث +وأحداثها +وأحدث +وأحدثكم +وأحدثوا +وأحدقت +وأحدهما +وأحذية +وأحراشها +وأحرق +وأحزاب +وأحزمة +وأحس +وأحسب +وأحسبني +وأحسبه +وأحست +وأحسست +وأحسن +وأحسه +وأحصر +وأحضر +وأحطم +وأحطمها +وأحـد +وأحفادنا +وأحفاده +وأحفادهم +وأحفظ +وأحقهم +وأحكام +وأحكامها +وأحلام +وأحلامنا +وأحلامه +وأحلامهم +وأحلامي +وأحلم +وأحلى +وأحمد +وأحمل +وأحميها +وأحمّل +وأحنى +وأحواضاً +وأحوال +وأحوالهم +وأحوز +وأحيا +وأحياء +وأحيانا +وأحياناً +وأحيانًا +وأحيت +وأخاف +وأخال +وأخالنا +وأخاً +وأخبار +وأخبرتني +وأخبرنا +وأخبرني +وأختار +وأختام +وأختاً +وأخترق +وأختزنها +وأخته +وأخذ +وأخذا +وأخذت +وأخذتني +وأخذته +وأخذنا +وأخذوا +وأخذوها +وأخذوهم +وأخرج +وأخرجت +وأخرجه +وأخرجها +وأخرى +وأخشاها +وأخصبوا +وأخطأت +وأخطائهم +وأخطائي +وأخطاره +وأخطارها +وأخطر +وأخـــلاقه +وأخفاها +وأخفضت +وأخفق +وأخفقت +وأخفى +وأخلاقيات +وأخلاقياتهم +وأخلاقية +وأخلاقيًّا +وأخلعه +وأخواتها +وأخواتي +وأخوة +وأخوته +وأخوتي +وأخوض +وأخوف +وأخوه +وأخوَّته +وأخي +وأخيرا +وأخيراً +وأخيرًا +وأخيه +وأد +وأداء +وأدائه +وأدائهم +وأداة +وأداتها +وأدار +وأدب +وأدباء +وأدباً +وأدبر +وأدبه +وأدبها +وأدبية +وأدبًا +وأدت +وأدخل +وأدخلت +وأدخلته +وأدخلتها +وأدخله +وأدخنة +وأدرت +وأدرك +وأدركت +وأدركه +وأدع +وأدعو +وأدعية +وأدفع +وأدفعها +وأدق +وأدلها +وأدندن +وأدها +وأدوات +وأدواتها +وأدوار +وأدوية +وأدوّن +وأدى +وأديانهم +وأديب +وأديبا +وأديبات +وأديباً +وأديبها +وأدّت +وأذاع +وأذاكر +وأذكار +وأذكر +وأذكى +وأذهب +وأذى +وأراد +وأرادت +وأراده +وأراضي +وأراضٍ +وأراني +وأراه +وأربابه +وأربع +وأربعة +وأربعمائة +وأربعون +وأربعين +وأرتاح +وأرتال +وأرتنا +وأرجع +وأرجعوها +وأرجلهم +وأرجو +وأرحل +وأردت +وأردف +وأردية +وأرسطو +وأرسل +وأرسلت +وأرسله +وأرسم +وأرض +وأرضاً +وأرضه +وأرضية +وأرعد +وأرفعهم +وأرفف +وأرفق +وأرقام +وأرقب +وأرقص +وأرقى +وأركض +وأرمي +وأرميه +وأرميها +وأرهقته +وأرهقه +وأرواح +وأرواحنا +وأرواحهم +وأروح +وأروع +وأروقة +وأروِ +وأرى +وأريج +وأريحية +وأريد +وأزاح +وأزالت +وأزداد +وأزرع +وأزعم +وأزقتها +وأزمات +وأزهاره +وأزياء +وأزيح +وأزيلت +وأزِن +وأسأل +وأسألهما +وأسئلة +وأسئلته +وأسئلتها +وأساءت +وأساتذة +وأساس +وأساسيا +وأساسية +وأساطير +وأساطيرها +وأساعدها +وأسافر +وأساليب +وأساليبه +وأسامة +وأساور +وأسباب +وأسبابها +وأسبانيا +وأسبر +وأسبوع +وأستاذ +وأستاذاً +وأستباحها +وأستبعد +وأستخدم +وأستخدمه +وأستذكر +وأستراليا +وأسترجع +وأستريح +وأستطيع +وأستعدوا +وأستمتع +وأستمع +وأستيقظت +وأسر +وأسرار +وأسرتاهما +وأسرته +وأسرع +وأسرعت +وأسرعها +وأسرفت +وأسره +وأسرى +وأسس +وأسست +وأسسه +وأسسوا +وأسطورة +وأسطول +وأسعار +وأسعارها +وأسفار +وأسفاراً +وأسفاري +وأسفر +وأسفرت +وأسفهم +وأسقط +وأسقطت +وأسقف +وأسقفها +وأسقيه +وأسكته +وأسكنت +وأسكنه +وأسلحة +وأسلحتها +وأسلم +وأسلمنا +وأسلوب +وأسلوبه +وأسلوبي +وأسماء +وأسمار +وأسماكاً +وأسماها +وأسمع +وأسنانه +وأسندت +وأسهل +وأسهم +وأسهمت +وأسواق +وأسواقها +وأسود +وأسوشيتدبرس +وأسوي +وأسيراً +وأسيوط +وأشاد +وأشار +وأشارت +وأشاعوا +وأشاهد +وأشجار +وأشخاص +وأشد +وأشده +وأشدها +وأشرأب +وأشرس +وأشرطة +وأشرف +وأشرى +وأشعار +وأشعارا +وأشعاره +وأشعر +وأشعل +وأشعلوا +وأشفق +وأشقّ +وأشكال +وأشكاله +وأشكالها +وأشكالي +وأشنق +وأشهد +وأشهر +وأشهرها +وأشهرهم +وأشواقها +وأشياء +وأشير +وأصاب +وأصابت +وأصابعنا +وأصالة +وأصبح +وأصبحت +وأصبحتم +وأصبحتُ +وأصبحوا +وأصح +وأصحاب +وأصحابه +وأصحابها +وأصخنا +وأصدر +وأصدرت +وأصدرته +وأصدرتها +وأصدره +وأصدرها +وأصدق +وأصدقاء +وأصدقاءنا +وأصدقاؤه +وأصدقائه +وأصدقائي +وأصدقكم +وأصر +وأصرخ +وأصروا +وأصعب +وأصف +وأصفها +وأصل +وأصلب +وأصلحها +وأصمت +وأصناف +وأصوات +وأصول +وأصولا +وأصوله +وأصولها +وأصولهم +وأصيب +وأصيبت +وأصيل +وأصيلة +وأضاف +وأضافت +وأضحك +وأضخم +وأضر +وأضراب +وأضرار +وأضراره +وأضرّ +وأضعف +وأضعفها +وأضف +وأضفت +وأضلوا +وأضواء +وأضوائها +وأضيف +وأضيفت +وأطال +وأطباء +وأطر +وأطراف +وأطرحها +وأطرق +وأطروحاته +وأطفال +وأطفاله +وأطفالها +وأطفالهم +وأطفالي +وأطل +وأطلال +وأطلت +وأطلعه +وأطلق +وأطلقا +وأطلقت +وأطلقتها +وأطلقوا +وأطوارها +وأطول +وأظل +وأظن +وأظنني +وأظنهما +وأظهر +وأظهرت +وأظهري +وأعاد +وأعادت +وأعادني +وأعادوهم +وأعاق +وأعالي +وأعباءه +وأعباؤه +وأعبائه +وأعتبر +وأعتبره +وأعترف +وأعتز +وأعتقد +وأعثر +وأعجب +وأعجبت +وأعد +وأعداء +وأعدائه +وأعدائهم +وأعداد +وأعدد +وأعددت +وأعدك +وأعدها +وأعراسها +وأعرب +وأعرف +وأعرِضُ +وأعزف +وأعسال +وأعشابه +وأعضاء +وأعطانا +وأعطاه +وأعطت +وأعطته +وأعطتها +وأعطى +وأعطي +وأعطيتها +وأعظم +وأعقب +وأعقد +وأعلامه +وأعلامهم +وأعلاها +وأعلن +وأعلنت +وأعلنتها +وأعلنوا +وأعلى +وأعمار +وأعمال +وأعماله +وأعمالهم +وأعمامي +وأعمدة +وأعمق +وأعمل +وأعني +وأعوانه +وأعود +وأعوم +وأعياد +وأعيادهم +وأعياه +وأعيته +وأعيتهم +وأعيد +وأعيدت +وأعيش +وأفاد +وأفادت +وأفارقة +وأفاضل +وأفاقون +وأفانين +وأفتى +وأفخر +وأفراحهم +وأفراخها +وأفراد +وأفرادالمجتمع +وأفرادها +وأفراس +وأفرج +وأفرجت +وأفرزت +وأفرشها +وأفريقيا +وأفزعت +وأفسحت +وأفضل +وأفضلها +وأفضِّل +وأفطر +وأفعالها +وأفعل +وأفق +وأفكار +وأفكاراً +وأفكاره +وأفكارهم +وأفكاري +وأفكر +وأفلاطون +وأفلام +وأفلاما +وأفنيون +وأفواه +وأقارب +وأقام +وأقامت +وأقاموا +وأقبل +وأقبلت +وأقبلهم +وأقبية +وأقدس +وأقدم +وأقدمت +وأقذف +وأقر +وأقرأ +وأقرؤها +وأقراص +وأقرانه +وأقرب +وأقربها +وأقربهم +وأقرت +وأقرهم +وأقساها +وأقصد +وأقطار +وأقطارنا +وأقف +وأقفل +وأقل +وأقلام +وأقلامه +وأقلها +وأقلية +وأقمشة +وأقمنا +وأقنان +وأقنع +وأقنعته +وأقواسـه +وأقوال +وأقواله +وأقوالهم +وأقول +وأقوم +وأقوى +وأقيم +وأكاد +وأكاديميات +وأكبادنا +وأكبادهم +وأكبر +وأكبرها +وأكتب +وأكتفي +وأكثر +وأكثرمن +وأكثرها +وأكثرهم +وأكثرهن +وأكد +وأكدت +وأكدوا +وأكرر +وأكرم +وأكره +وأكسبتكم +وأكسبه +وأكسجين +وأكسفورد +وأكشف +وأكل +وأكلا +وأكلمه +وأكمل +وأكملت +وأكواخ +وأكوام +وأكون +وأكياس +وأكيدة +وألا +وألاعيب +وألاعيبهم +وألبرت +وألبسته +وألبسه +وألبومي +وألج +وألحان +وألحت +وألزم +وألسنة +وألعاب +وألعابا +وألف +وألفاظ +وألفريد +وألقا +وألقاكما +وألقت +وألقها +وألقوه +وألقى +وألقي +وألقيت +وألقيتها +وألقيها +وألم +وألمانيا +وألمهم +وألمّ +وألهمها +وألوان +وألوانه +وألوانها +وألواني +وألون +وألونهما +وأليماً +وألّف +وأم +وأما +وأماكن +وأمام +وأمامكم +وأمامنا +وأمامها +وأمامهم +وأمان +وأماناً +وأمانة +وأمانتها +وأمانيهم +وأمتعته +وأمتعنا +وأمتك +وأمثال +وأمثاله +وأمثالها +وأمثالهما +وأمثلة +وأمر +وأمراض +وأمراضها +وأمره +وأمرهم +وأمريكا +وأمريكية +وأمريكيين +وأمسح +وأمسك +وأمشي +وأمضى +وأمضيت +وأمضيتُ +وأمضينا +وأمعنت +وأمعنوا +وأمكث +وأمكن +وأمكنك +وأمكنهم +وأمل +وأملاً +وأمله +وأملي +وأمليت +وأمنا +وأمنه +وأمنهم +وأمنياً +وأمنية +وأمنيتي +وأمه +وأمها +وأمهات +وأمهاتهم +وأمهم +وأمواجه +وأموالاً +وأموالها +وأمي +وأمية +وأمير +وأميرة +وأميل +وأمين +وأمينا +وأن +وأنا +وأناة +وأناس +وأناسه +وأناشيده +وأناعلى +وأناقة +وأناهيد +وأنت +وأنتج +وأنتجت +وأنتجوا +وأنتصر +وأنتظر +وأنتم +وأنتما +وأنتهي +وأنتِ +وأنثى +وأنجب +وأنجز +وأنجعها +وأنحاء +وأندريه +وأندية +وأنذر +وأنزلت +وأنزله +وأنساق +وأنسته +وأنشأ +وأنشأت +وأنشأوا +وأنشئت +وأنشد +وأنشر +وأنشطة +وأنشطتها +وأنصار +وأنصارهم +وأنصاف +وأنضر +وأنطاكية +وأنطون +وأنظر +وأنظمة +وأنظمتها +وأنف +وأنفسهم +وأنفض +وأنفع +وأنفه +وأنقاهم +وأنقل +وأنك +وأنكرت +وأنم +وأنماط +وأنماطها +وأننا +وأنني +وأنه +وأنها +وأنهض +وأنهم +وأنهما +وأنهوا +وأنهى +وأنواع +وأنواعاً +وأنواعه +وأنواعها +وأنور +وأنى +وأني +وأنياب +وأنياباً +وأنيابها +وأنّى +وأنَّ +وأهالي +وأهداف +وأهدافنا +وأهدافه +وأهدافها +وأهدافهم +وأهداها +وأهديها +وأهرع +وأهفو +وأهل +وأهلك +وأهله +وأهلها +وأهلية +وأهم +وأهمله +وأهمها +وأهمية +وأهميته +وأهميتها +وأهوائه +وأوائل +وأواخر +وأواصر +وأوافيه +وأوان +وأوباش +وأوتي +وأوجاعه +وأوجاعها +وأوجزهم +وأوجه +وأوجين +وأودعت +وأودعهم +وأودعوه +وأوراق +وأوراقي +وأوربا +وأوربي +وأورث +وأورجواي +وأورد +وأوروبا +وأوروبية +وأوسع +وأوسمة +وأوشك +وأوصلها +وأوصى +وأوضاع +وأوضح +وأوضحت +وأوضحهم +وأوعز +وأوعزت +وأوفدت +وأوقعوا +وأوقف +وأوقفه +وأوقفوا +وأوكلت +وأول +وأولئك +وأولاده +وأولادها +وأولاها +وأولاهم +وأولبرايت +وأوله +وأولها +وأولهم +وأولوياتها +وأولى +وأولياء +وأوليائه +وأوهاما +وأوهامي +وأي +وأيا +وأيام +وأيامنا +وأيامهم +وأياً +وأية +وأيد +وأيدت +وأيديهم +وأيديولوجيا +وأيديولوجيات +وأيرلندا +وأيسر +وأيضا +وأيضاً +وأيضًا +وأيمن +وأين +وأينما +وأيها +وأيهما +وأيّ +وأيّا +وأيّدني +وأَمَّا +وأُدخلت +وأُشْرِبتها +وأُطلِقَ +وأُعدَّ +وأُعطي +وأُقفل +وأُلبِست +وأُلحقت +وإباضية +وإبان +وإبحار +وإبداع +وإبداعات +وإبداعاً +وإبداعنا +وإبداعه +وإبداعية +وإبراز +وإبراهيم +وإبطالها +وإبعاد +وإبقاء +وإبقاءها +وإبهاراً +وإتاحة +وإتقان +وإتقانهم +وإتلافه +وإتمام +وإثابة +وإثارة +وإثبات +وإثباتها +وإثر +وإثراء +وإثرائها +وإثنية +وإثيوبيا +وإجاص +وإجراء +وإجراءات +وإجرائنا +وإجمالاً +وإجمالي +وإحاطاته +وإحباط +وإحداث +وإحداثها +وإحدى +وإحساس +وإحساسه +وإحساسي +وإحسان +وإحلال +وإحياء +وإحيائه +وإخاء +وإخبارها +وإخراج +وإخراجه +وإخراجها +وإخراجهم +وإخراجي +وإخفاء +وإخفاق +وإخفاقه +وإخلاص +وإخلاصها +وإخوانك +وإخواننا +وإخوانه +وإخوته +وإخوتي +وإدارات +وإداراتها +وإدارة +وإدارت +وإدارته +وإدارتها +وإداري +وإداريين +وإدخال +وإدراج +وإدراك +وإدراكهم +وإدراكي +وإدماج +وإدمان +وإدوار +وإذ +وإذا +وإذن +وإرادته +وإراقة +وإرثها +وإرساء +وإرسال +وإرسالي +وإرشاد +وإرشادات +وإرهاق +وإريتريا +وإزاء +وإزاحة +وإزالة +وإزمان +وإزهاق +وإسبانيا +وإسرائيل +وإسرائيلية +وإسقاط +وإسقاطاتها +وإسلام +وإسلامي +وإسلامية +وإسلاميّه +وإسلاميًّا +وإسماعيل +وإسهامها +وإشارات +وإشاعاتهم +وإشاعة +وإشراق +وإشراقا +وإصابة +وإصدار +وإصدارها +وإصلاح +وإصلاحها +وإصلاحيات +وإضاءة +وإضافاته +وإضافة +وإضافية +وإضراراً +وإضرارها +وإضفاء +وإطارات +وإطعام +وإطلاع +وإطلاعه +وإطلاعهم +وإطلاق +وإطلاقه +وإطلاقها +وإطلالة +وإظهار +وإظهارها +وإعادة +وإعاشة +وإعاقة +وإعاقته +وإعانة +وإعجاب +وإعجابه +وإعجابي +وإعداد +وإعداده +وإعدادها +وإعزاز +وإعطاء +وإعطاؤها +وإعفاء +وإعفاؤهم +وإعلاء +وإعلامية +وإعلاميين +وإعلان +وإعلانات +وإعلانية +وإفرازات +وإفريقيا +وإفريقية +وإفساح +وإفساد +وإفطار +وإقامة +وإقامته +وإقبال +وإقبالاً +وإقرار +وإقصاءه +وإقفال +وإقليم +وإقليمياً +وإقليمية +وإقناع +وإقناعك +وإقناعه +وإكثار +وإكساب +وإكسابهن +وإكسل +وإكمال +وإلا +وإلاّ +وإلاَّ +وإلباس +وإلحاحه +وإلحاق +وإلحاقاً +وإلحاقهن +وإلزام +وإلصاق +وإلقاء +وإلكترونية +وإلهام +وإلهي +وإلهية +وإلى +وإلي +وإليك +وإليكم +وإليه +وإليها +وإم +وإما +وإماء +وإماراتها +وإمام +وإمامها +وإمبراطوره +وإمدادها +وإمدادهم +وإمكان +وإمكانات +وإمكاناتك +وإمكاناته +وإمكاناتها +وإمكانيات +وإمكانياتها +وإمكانية +وإملاءات +وإملاءٍ +وإميل +وإن +وإناث +وإنارتها +وإنت +وإنتاج +وإنتاجا +وإنتاجه +وإنتاجي +وإنتاجياتها +وإنتاجية +وإنتو +وإنجاب +وإنجاز +وإنجازات +وإنجازاته +وإنجازاتها +وإنجلترا +وإندونيسيا +وإنزيمات +وإنساناً +وإنسانياً +وإنسانية +وإنسانيته +وإنسانيتها +وإنشاء +وإنشائية +وإنشادًا +وإنصافا +وإنطاق +وإنعاش +وإنعاشي +وإنـما +وإنفاق +وإنقاذ +وإنما +وإننا +وإنني +وإنه +وإنها +وإنهائها +وإني +وإنْ +وإهانة +وإهمال +وإهمالنا +وإيابا +وإياباً +وإياكم +وإياه +وإياهم +وإيجابا +وإيجابي +وإيجابية +وإيجاد +وإيداعه +وإيذاء +وإيراداتها +وإيران +وإيزابيلا +وإيضاحه +وإيطاليا +وإيطالية +وإيطاليين +وإيقاعات +وإيقاعاتها +وإيقاعه +وإيقاعية +وإيقاف +وإيلامه +وإيمان +وإيماناً +وإيمانه +وإيميل +وإيواء +وإيوان +وا +واءمة +واب +وابتدأ +وابتسامة +وابتسامتكِ +وابتسامته +وابتسم +وابتسمت +وابتعاث +وابتعادها +وابتعادهم +وابتعث +وابتعد +وابتكار +وابتكاراتها +وابتكاراً +وابتكر +وابتكرت +وابتلاء +وابتلاع +وابتلاعها +وابحثي +وابعاد +وابل +وابن +وابنة +وابنتها +وابنه +وابنها +وابني +وات +واتباع +واتباعه +واتبعته +واتت +واتجاه +واتجاهات +واتجاهاته +واتجاهاتهم +واتجاهه +واتجه +واتجهنا +واتحاد +واتخاذ +واتخاذها +واتخذ +واتخذوا +واتزانها +واتساع +واتساعاً +واتساعها +واتساقاً +واتساقًا +واتسعت +واتصاف +واتصال +واتصل +واتصلت +واتضح +واتفاقيات +واتفاقية +واتفق +واتفقنا +واتقانها +واتقوا +واتمايلي +واتهام +واتهم +واتهمنى +واتهمه +واتهمهما +واتهموه +واتهموها +واتِّخاذه +واثاره +واثبتت +واثق +واثقاً +واثقة +واثقون +واثقين +واثناء +واثنان +واثنتين +واجب +واجبات +واجباته +واجباتها +واجباتي +واجبكم +واجبه +واجبي +واجتاحت +واجتاز +واجتذبت +واجترار +واجتم +واجتماعي +واجتماعيا +واجتماعياً +واجتماعية +واجتماعيون +واجتماعيًا +واجتمع +واجتناب +واجتهاد +واجتهاداته +واجتياحهم +واجداً +واجعلنا +واجعله +واجمون +واجنر +واجه +واجهات +واجهاتها +واجهة +واجهت +واجهته +واجهتها +واجهوا +واحات +واحاتنا +واحة +واحت +واحتاج +واحتجان +واحتجزته +واحتداد +واحترار +واحترام +واحتراماً +واحترامه +واحترامها +واحترامي +واحترامًا +واحترفت +واحتضنتها +واحتفال +واحتفالية +واحتفظت +واحتفل +واحتفى +واحتكار +واحتلالنا +واحتلت +واحتمال +واحتمالات +واحتمالاته +واحته +واحتوائها +واحتوى +واحتياج +واحتياجات +واحتياجاته +واحتُفظ +واحد +واحدا +واحداً +واحداَ +واحدة +واحده +واحدًا +واحدٍ +واحساس +واحصلوا +واحـة +واحـد +واحـداً +واحـدة +واحيائه +واختار +واختارت +واختارته +واختارني +واختاره +واختارها +واختاروا +واختبآ +واختتم +واختتمت +واختتمها +واختراعاته +واختراعه +واخترت +واخترنا +واختزال +واختزنها +واختصارها +واختطت +واختفاء +واختفائها +واختفى +واختلاط +واختلاف +واختلافات +واختلافنا +واختلط +واختلف +واختنقت +واختيار +واختياره +واختير +واختيرت +واخرج +واخضاع +واخفاقات +واد +وادحضي +وادخار +وادع +وادعة +وادعت +وادى +وادي +واديها +واديهم +وادّخار +وادٍّ +واذا +واذكر +وار +وارتأت +وارتباط +وارتباطا +وارتباطه +وارتباطها +وارتباك +وارتباكي +وارتبط +وارتبطت +وارتجاف +وارتجفت +وارتجي +وارتح +وارتحاله +وارتخاء +وارتداء +وارتدادات +وارتدت +وارتدوا +وارتسمتْ +وارتعدت +وارتفاع +وارتفاعا +وارتفاعه +وارتفاعها +وارتفع +وارتفعت +وارتقاء +وارتقت +وارتكبت +وارتوائها +وارتياح +وارتياده +وارد +واردا +وارداتها +واردة +وارسم +وارسو +وارض +وارفة +وارقدت +وارنر +وازداد +وازدادت +وازدانت +وازدحامها +وازدراء +وازدهاراً +وازدهر +وازدهرت +وازدياد +واسأل +واسإله +واست +واستأذن +واستأذنت +واستأنسوا +واستئصال +واستباحة +واستبدال +واستبداله +واستبدالها +واستبدّ +واستبطان +واستتبع +واستثمارها +واستثمرته +واستثني +واستجابة +واستجابت +واستجابتهم +واستجار +واستجداء +واستجلاء +واستجمعت +واستجوبتهم +واستحسانها +واستحسانًا +واستحقت +واستحللتم +واستخدام +واستخدامه +واستخدامها +واستخدم +واستخدمت +واستخدموه +واستخراج +واستخراجها +واستخفى +واستخلاص +واستخلصوا +واستدار +واستدارت +واستدرجوه +واستدعاء +واستدعى +واستراتيجية +واسترداد +واسترعت +واستزادة +واستشاط +واستشرائه +واستشرافا +واستشهد +واستصلاح +واستضافته +واستضعفوه +واستطاع +واستطاعت +واستطاعوا +واستطعت +واستطعنا +واستطلاع +واستطيع +واستعاد +واستعادة +واستعادتها +واستعان +واستعد +واستعداد +واستعدادات +واستعدادنا +واستعداده +واستعدادها +واستعدادهم +واستعدادي +واستعدت +واستعدته +واستعرتها +واستعرض +واستعمال +واستعماله +واستعمالها +واستعملوه +واستعينوا +واستفتاء +واستفحال +واستفدت +واستقام +واستقامة +واستقبال +واستقبالهم +واستقبل +واستقبلنا +واستقدم +واستقر +واستقرار +واستقرارها +واستقرت +واستقصاء +واستقطاب +واستقطب +واستقل +واستقلال +واستقلالها +واستقلالية +واستكانة +واستكمال +واستكمالاً +واستكمل +واستكملوا +واستلاب +واستلقيت +واستلهامهما +واستمالت +واستمتعتم +واستمدت +واستمر +واستمرار +واستمراره +واستمرارها +واستمرت +واستمرفي +واستمرّوا +واستمسكت +واستمطروا +واستمع +واستمعت +واستمعنا +واستناداً +واستناده +واستنادًا +واستنارة +واستنتاج +واستنتاجاته +واستنتج +واستنتجوا +واستنزفت +واستنساخ +واستنشق +واستنفار +واستنفدت +واستنكاراً +واستنكر +واستهتار +واستهجان +واستهدافاته +واستهلاك +واستهلاكها +واستهلاكية +واستهلالاً +واستهنت +واستهوتهم +واستوحي +واستوديوهات +واستوطن +واستوطنوا +واستوعب +واستوعبت +واستوعبتها +واستولت +واستولوا +واستولى +واستيراد +واستيعاب +واستيعابه +واستيقظ +واستيقظت +واستيلاء +واستيلائه +واستُبدلت +واسط +واسطبلات +واسطة +واسع +واسعا +واسعاً +واسعة +واسعي +واسعًا +واسكتشات +واسكتلندا +واسكندر +واسم +واسماه +واسماً +واسمه +واسمها +واسيتات +واسيدا +واشتد +واشتداد +واشتدت +واشتراطات +واشتراكيته +واشترط +واشترطت +واشترك +واشتروا +واشترى +واشتريت +واشتعلت +واشتمل +واشتهر +واشتهرت +واشتُهر +واشحذوا +واشنطن +واصبح +واصبحوا +واصطحب +واصطحبني +واصطحبونا +واصعد +واصف +واصفا +واصفاً +واصل +واصلا +واصلة +واصلت +واصلتا +واصلوا +واضح +واضحا +واضحاً +واضحة +واضحةً +واضحـة +واضحين +واضحًا +واضرب +واضطر +واضطراب +واضطرابات +واضطراري +واضطرام +واضطرت +واضطررت +واضع +واضعاً +واضعو +واضعي +واضعين +واضعيها +واضعًا +واط +واطلاعاتهم +واطلاعه +واطلب +واطلع +واطلعت +واطلعوا +واطمأنت +واطمئنان +واع +واعتبار +واعتبارات +واعتبر +واعتبرت +واعتبرته +واعتبرتها +واعتبروا +واعتبروها +واعتداد +واعتداده +واعتدال +واعتدوا +واعتذر +واعترافا +واعترته +واعترف +واعترفت +واعترفوا +واعتزاز +واعتصموا +واعتقادهم +واعتقال +واعتقالات +واعتقالها +واعتقد +واعتقدت +واعتقل +واعتقلوه +واعتكافها +واعتماد +واعتمدت +واعتنق +واعد +واعدا +واعدة +واعذريني +واعظا +واعلم +واعيا +واعية +واعٍ +واف +وافتتاحه +وافتتح +وافتتحت +وافتتحه +وافتخر +وافتراءات +وافترشا +وافترض +وافترقا +وافتقاد +وافتقد +وافتقده +وافته +وافدة +وافدون +وافر +وافرا +وافرة +وافق +وافقت +وافية +وافٍ +واقتحام +واقتحمته +واقتدار +واقتراح +واقتران +واقترب +واقتربت +واقتربنا +واقتربَ +واقترح +واقترحت +واقتصاداً +واقتصادى +واقتصادي +واقتصاديا +واقتصاديات +واقتصادياتها +واقتصادياً +واقتصادية +واقتصاديًا +واقتصرت +واقتلاع +واقتنع +واقتنعت +واقتنوا +واقرأ +واقع +واقعا +واقعاً +واقعة +واقعةً +واقعنا +واقعها +واقعي +واقعيا +واقعياً +واقعية +واقعًا +واقفا +واقفاً +واقفة +واقفين +واقفٌ +واقي +واقيًا +واقٍ +واكب +واكبت +واكتئاب +واكتساب +واكتسابهم +واكتسب +واكتسبت +واكتشاف +واكتشافاتها +واكتشافي +واكتشف +واكتشفت +واكتشفوا +واكتفت +واكتفى +واكتفيت +واكتمل +واكتملت +واكد +وال +والآباء +والآبار +والآثار +والآجر +والآخر +والآخرة +والآخرون +والآداب +والآراء +والآراميون +والآزوت +والآسيويين +والآشوري +والآشوريين +والآفات +والآلات +والآليات +والآلية +والآمال +والآن +والآنية +والآيات +والآيس +والأب +والأباطيل +والأبحاث +والأبخرة +والأبراج +والأبطال +والأبعاد +والأبعد +والأبقار +والأبناء +والأبنية +والأبهاء +والأبواب +والأبيض +والأتراك +والأثاث +والأثر +والأثري +والأثرياء +والأثرية +والأجانب +والأجبان +والأجداد +والأجدى +والأجزاء +والأجسام +والأجمل +والأجناس +والأجنبي +والأجنبية +والأجنة +والأجنحة +والأجنحـة +والأجهزة +والأجواء +والأجوبة +والأحاديث +والأحاسيس +والأحافير +والأحجار +والأحجام +والأحد +والأحداث +والأحذية +والأحزاب +والأحزان +والأحصنة +والأحفاد +والأحكام +والأحلام +والأحوال +والأحياء +والأخ +والأخت +والأختام +والأخذ +والأخرى +والأخشاب +والأخضر +والأخطاء +والأخلاق +والأخلاقي +والأخلاقية +والأخوة +والأخوّة +والأخير +والأخيرة +والأخيرةُ +والأخيرَ +والأداء +والأدب +والأدباء +والأدبي +والأدبيات +والأدبية +والأدعية +والأدق +والأدوات +والأدوار +والأدوية +والأديان +والأديب +والأديرة +والأذرة +والأذكار +والأذن +والأذواق +والأراجوز +والأراضي +والأرامل +والأرباح +والأربعين +والأربعينيات +والأرجل +والأرجنتين +والأرحام +والأردن +والأردنيين +والأرض +والأرنب +والأرياف +والأزرار +والأزرق +والأزقة +والأزليج +والأزمات +والأزمان +والأزمنة +والأزياء +والأسئلة +والأسابيع +والأسابيعُ +والأساتذة +والأساسي +والأساسية +والأساطير +والأساطيل +والأساقفة +والأساليب +والأسباب +والأسبانية +والأستاذ +والأستاذة +والأسخف +والأسد +والأسرار +والأسرة +والأسرية +والأسطورة +والأسطوري +والأسطورية +والأسطول +والأسعار +والأسقف +والأسلاك +والأسلحة +والأسلوب +والأسماء +والأسماع +والأسماك +والأسمدة +والأسمر +والأسمنت +والأسنان +والأسوأ +والأسوار +والأسواق +والأسود +والأسّ +والأشبه +والأشجار +والأشخاص +والأشرار +والأشرطة +والأشعار +والأشعة +والأشكال +والأشهر +والأشواق +والأشياء +والأصابع +والأصالة +والأصداء +والأصداف +والأصدقاء +والأصعب +والأصفر +والأصوات +والأضرحة +والأطباء +والأطباق +والأطر +والأطروحات +والأطعمة +والأطفال +والأطلال +والأطماع +والأظافر +والأعاصير +والأعجب +والأعداء +والأعراس +والأعراض +والأعراف +والأعراق +والأعصاب +والأعضاء +والأعلام +والأعلى +والأعم +والأعمال +والأعمام +والأعوام +والأعياد +والأعيان +والأفئدة +والأفارقة +والأفراح +والأفراد +والأفران +والأفريقي +والأفعال +والأفق +والأفقية +والأفكار +والأفلام +والأفوات +والأقارب +والأقاليم +والأقباط +والأقبية +والأقداح +والأقدار +والأقدام +والأقراص +والأقراط +والأقسى +والأقصر +والأقصى +والأقطار +والأقل +والأقلام +والأقمار +والأقمشة +والأقوات +والأقواس +والأقوال +والأقوياء +والأكاديمي +والأكاديميات +والأكاديمية +والأكاديميين +والأكثر +والأكزيما +والأكسجين +والأكل +والأكلات +والأكواع +والألبان +والألباني +والألحان +والألعاب +والألف +والألفبائية +والألفة +والألم +والألمان +والألماني +والألمانية +والألوان +والألومنيوم +والأمازون +والأماسي +والأماكن +والأمان +والأمانة +والأمة +والأمتعة +والأمثال +والأمثلة +والأمر +والأمراء +والأمراض +والأمران +والأمريكى +والأمريكي +والأمريكية +والأمريكيين +والأمسيات +والأمطار +والأمكنة +والأمل +والأملاح +والأمم +والأممية +والأمن +والأمني +والأمنية +والأمهات +والأموات +والأمواج +والأموال +والأمور +والأمي +والأمير +والأميركية +والأمين +والأمينية +والأناجيل +والأناقة +والأناهيد +والأنبوبة +والأنثروبولوجيا +والأنثى +والأندلس +والأندلسي +والأندية +والأنسجة +والأنسنة +والأنشطة +والأنصار +والأنظمة +والأنف +والأنفاس +والأنفاق +والأنفس +والأنفليد +والأنهار +والأنوار +والأنواع +والأنوثة +والأنين +والأهالي +والأهرامات +والأهل +والأهلي +والأهلية +والأهم +والأهمية +والأواني +والأوبئة +والأوبريتات +والأوحال +والأوحد +والأودية +والأوراد +والأوراق +والأوربي +والأوربية +والأوربيون +والأوربيين +والأورج +والأوردية +والأوروبية +والأوز +والأوساخ +والأوسط +والأوضاع +والأوكسجين +والأول +والأولاد +والأولوية +والأولياء +والأوهام +والأيام +والأيديولوجي +والأيديولوجيا +والأيديولوجيات +والأيديولوجية +والإبداع +والإبداعية +والإبرة +والإبعاد +والإبل +والإتاوات +والإتجار +والإتصالات +والإتقان +والإتيان +والإثارة +والإثنية +والإجابة +والإجازات +والإجراءات +والإجهاد +والإجهاض +والإحباط +والإحساس +والإحسان +والإحصاءات +والإحصائيات +والإخاء +والإخراج +والإخلاص +والإخوان +والإدارات +والإدارة +والإداري +والإداريات +والإدارية +والإداريين +والإدراك +والإذاعات +والإذاعي +والإذاعية +والإرادة +والإرشاد +والإرشادات +والإرشادية +والإرهاب +والإرهابيين +والإرهاق +والإزدهار +والإسبان +والإسبانية +والإستراتيجيات +والإستقرار +والإستين +والإسرائيلية +والإسرائيليين +والإسطبل +والإسفراييني +والإسكان +والإسكندرية +والإسكواش +والإسلام +والإسلامي +والإسلامية +والإسلاميون +والإسلاميين +والإسهاب +والإسهال +والإسهام +والإسهامات +والإشادة +والإشارة +والإشاعات +والإشراف +والإشعاع +والإشكاليات +والإشهار +والإصابات +والإصحاح +والإصرار +والإصراروالمثابرة +والإصلاح +والإصلاحية +والإضافة +والإضافية +والإضرار +والإطلاع +والإعادة +والإعاشة +والإعاشية +والإعانات +والإعانة +والإعجاب +والإعدادية +والإعدام +والإعصار +والإعلام +والإعلامي +والإعلاميات +والإعلامية +والإعلاميين +والإعلان +والإعلانات +والإعمار +والإفتاء +والإفريقية +والإفساح +والإقامة +والإقبال +والإقتصادية +والإقدام +والإقصاء +والإقطاع +والإقليمية +والإقواء +والإكثار +والإلكترونيات +والإلهام +والإلهية +والإمارات +والإمبراطور +والإمبراطورية +والإمبريالية +والإمعان +والإمكانات +والإمكانيات +والإناث +والإناسة +والإنتاج +والإنتاجي +والإنتاجية +والإنترنت +والإنجاب +والإنجاز +والإنجازات +والإنجليزية +والإنجيل +والإندونيسية +والإنزيمات +والإنس +والإنسان +والإنساني +والإنسانيات +والإنسانية +والإنشائية +والإنشاد +والإنصاف +والإنضاج +والإنفاق +والإنماء +والإياب +والإيثار +والإيدز +والإيراني +والإيطالية +والإيفادات +والإيقاع +والإيقاعات +والإيلام +والإيمان +والا +والابتسامات +والابتعاد +والابتكار +والابتكارات +والابتهاج +والابتهالات +والابن +والابنة +والاتجار +والاتجاه +والاتجاهات +والاتحاد +والاتحادات +والاتساع +والاتصال +والاتصالات +والاتصالية +والاتفاق +والاتفاقيا +والاتفاقيات +والاتهام +والاتهامات +والاتهامـات +والاثنية +والاجتماع +والاجتماعي +والاجتماعيات +والاجتماعية +والاجتهاد +والاجتهادات +والاجتهادي +والاجراء +والاحاديث +والاحتجاج +والاحترافية +والاحترام +والاحتفاء +والاحتفاظ +والاحتفالات +والاحتقار +والاحتكاكات +والاحتكام +والاحتلال +والاحتماء +والاحتمال +والاحتمالات +والاحتياج +والاحتياجات +والاختبارات +والاختراعات +والاختزالية +والاختصار +والاختفاء +والاختلاط +والاختلاف +والاختلالات +والاختيار +والاختيارات +والادعاء +والارتباط +والارتباك +والارتشاف +والارتفاع +والارتقاء +والازدراء +والازدهار +والاستئثار +والاستباحة +والاستثمار +والاستثمارى +والاستثمارية +والاستثناء +والاستجابة +والاستجمام +والاستخدام +والاستخدامات +والاستخفاف +والاستدلالات +والاستراتيجية +والاسترخاء +والاستسلام +والاستشراق +والاستشعار +والاستشفاء +والاستطلاع +والاستعاضة +والاستعانة +والاستعداد +والاستعراب +والاستعلامات +والاستعمار +والاستعماري +والاستعمارية +والاستفادة +والاستفسارات +والاستقالات +والاستقامة +والاستقدام +والاستقرار +والاستقصاء +والاستقلال +والاستقلالية +والاستكشاف +والاستكشافات +والاستكشافي +والاستمتاع +والاستمرار +والاستمرارية +والاستهتار +والاستهداء +والاستهلاك +والاستيعاب +والاستيلاء +والاسكندرية +والاسم +والاشاعات +والاشتراكية +والاشتهاء +والاشمئزاز +والاضحكاك +والاضطرابات +والاضطراري +والاضطهاد +والاطفال +والاطلاع +والاطمئنان +والاعتبار +والاعتداء +والاعتذار +والاعتراف +والاعترافات +والاعتصام +والاعتقاد +والاعتقال +والاعتماد +والاعدادي +والافتتان +والافتراق +والافتعال +والافتقار +والاقتحامات +والاقتصاد +والاقتصادي +والاقتصادية +والاقتصاديين +والاكتئاب +والاكتشاف +والاكتشافات +والاكتفاء +والالتزام +والالتزامات +والالتقاء +والامتحانات +والامتنان +والانبعاث +والانتحار +والانتساب +والانتشار +والانتصار +والانتظار +والانتقال +والانتقام +والانتماء +والانجراف +والانجليزية +والانحدار +والانحراف +والانحلال +والانحناءات +والانحياز +والانخفاض +والاندثار +والاندفاع +والاندماج +والانسجام +والانسحاب +والانسلاخ +والانسيابية +والانشطار +والانصراف +والانضباط +والانطباعات +والانطلاق +والانطواء +والانعزال +والانفاق +والانفتاح +والانفجار +والانفراد +والانفصال +والانفضاض +والانفعال +والانقراض +والانقسامات +والانقياد +والانكسار +والانكفاء +والانهيار +والاهتمام +والاهتمامات +والاهم +والبؤس +والبائعين +والباب +والبابلي +والباحة +والباحث +والباحثون +والباحثين +والبارود +والباستيليا +والباسل +والباطنة +والباعة +والباقون +والباقي +والباكستاني +والباكستانية +والباكستانيين +والباكية +والباليه +والبامبو +والبتر +والبتروكيماويات +والبحاثة +والبحار +والبحتري +والبحث +والبحر +والبحرى +والبحرية +والبحرين +والبحريني +والبحوث +والبحيرات +والبخور +والبدء +والبداية +والبدلة +والبدنية +والبديل +والبذل +والبر +والبرازيل +والبراعم +والبراق +والبرامج +والبرانس +والبراني +والبراهين +والبربري +والبربرية +والبرتقال +والبرتقالي +والبرج +والبرد +والبرديات +والبرك +والبركة +والبرلمان +والبرنامج +والبرنوس +والبرهان +والبرهنة +والبروتين +والبروتينات +والبروز +والبروستاتا +والبروفيسور +والبرية +والبريثرويدات +والبريد +والبريطاني +والبريطانية +والبس +والبساتين +والبساطة +والبسطاء +والبسيط +والبشر +والبشير +والبصر +والبصرة +والبصري +والبصرية +والبصيرة +والبضائع +والبطاطا +والبطاطس +والبطاقة +والبطالة +والبطانة +والبطيخ +والبعثات +والبعد +والبعض +والبعيد +والبعيدة +والبق +والبقاء +والبقايا +والبقطرياني +والبقع +والبقعة +والبقلاوة +والبكتيريا +والبكم +والبلابل +والبلاد +والبلاستك +والبلاستيك +والبلاستيكية +والبلاهة +والبلايا +والبلد +والبلدان +والبلدة +والبلعوم +والبلورات +والبلورية +والبلوز +والبلياردو +والبن +والبناء +والبنائين +والبنات +والبنطال +والبنك +والبنوك +والبنى +والبني +والبنية +والبهائم +والبهارات +والبهجة +والبهلوان +والبهي +والبواخر +والبوسنة +والبوصلة +والبوفيهات +والبولوفوني +والبوليس +والبوليمرات +والبوم +والبويضات +والبيئات +والبيئة +والبيئي +والبيئية +والبيارق +والبيان +والبيانات +والبيانو +والبيت +والبيداءُ +والبيرة +والبيروني +والبيزنطيين +والبيض +والبيضاء +والبيع +والبيعية +والبيمارستانات +والبيوت +والبيولوجيا +والبيولوجية +والبيّاتي +والبِلَى +والت +والتآخي +والتآليف +والتأثر +والتأثير +والتأثيرات +والتأخر +والتأدب +والتأريخ +والتأسيس +والتأقلم +والتأكد +والتأكيد +والتأليف +والتأمل +والتأمين +والتأييد +والتائبين +والتابو +والتاريخ +والتاريخي +والتاريخية +والتبادل +والتباكي +والتباين +والتبدلات +والتبدّل +والتبرم +والتبريكات +والتبشير +والتبصر +والتبعية +والتبـصر +والتبيين +والتتري +والتثاقف +والتثقيف +والتثقيفي +والتجأ +والتجاذب +والتجار +والتجارب +والتجارة +والتجارى +والتجارية +والتجاريين +والتجاهل +والتجاوز +والتجدد +والتجديد +والتجديدات +والتجدّد +والتجذر +والتجربة +والتجرد +والتجريب +والتجريبية +والتجريد +والتجسس +والتجلد +والتجمعات +والتجميل +والتجهم +والتجهيز +والتجهيزات +والتجهيل +والتجوال +والتجويد +والتجويع +والتحادث +والتحالف +والتحامل +والتحاور +والتحايل +والتحدث +والتحدي +والتحديات +والتحديث +والتحرر +والتحرك +والتحركات +والتحرير +والتحريف +والتحريفات +والتحريم +والتحسس +والتحصيل +والتحصينات +والتحضر +والتحف +والتحفظي +والتحق +والتحقت +والتحقوا +والتحقيق +والتحقيقات +والتحكم +والتحليل +والتحليلات +والتحمل +والتحول +والتحولات +والتحوّلات +والتحيز +والتحّور +والتخريب +والتخريشية +والتخزين +والتخصص +والتخصصات +والتخطيط +والتخفي +والتخلص +والتخلف +والتخلي +والتخوف +والتداعيات +والتدبر +والتدبير +والتدخل +والتدخين +والتدريب +والتدريس +والتدقيق +والتدمير +والتدني +والتدوين +والتدين +والتذكير +والتر +والترابط +والتراتبية +والتراث +والتراجع +والتراجم +والتراحم +والتربة +والتربوي +والتربوية +والتربية +والترتيب +والترتيبات +والترجمة +والترحال +والترخيص +والتردد +والترع +والترف +والترفية +والترفيه +والترفيهية +والترقب +والترقي +والترقيع +والترقيم +والتركة +والتركمان +والتركي +والتركيبات +والتركيبة +والتركيز +والترميم +والترهيب +والترويج +والترويجية +والترويح +والتزاما +والتزامي +والتزكية +والتزلج +والتزم +والتزمت +والتزمني +والتزوير +والتزويق +والتزييف +والتزيين +والتسامح +والتستر +والتسجيل +والتسديد +والتسعينيات +والتسلح +والتسلط +والتسلية +والتسمُّم +والتسهيلات +والتسوق +والتسويق +والتسويقية +والتسيّب +والتشاؤم +والتشابك +والتشاور +والتشجيع +والتشخيصات +والتشرد +والتشريح +والتشريعات +والتشريعي +والتشظّي +والتشكك +والتشكيل +والتشهير +والتشويق +والتشويه +والتشيك +والتشييء +والتشييد +والتصاريح +والتصاعد +والتصاميم +والتصحيح +والتصدق +والتصدير +والتصقت +والتصلب +والتصميم +والتصميمات +والتصنيع +والتصورات +والتصوف +والتصوير +والتصوّرات +والتضافر +والتضامن +والتضحية +والتضخيم +والتضرع +والتضرعات +والتضلع +والتطابقِ +والتطبيق +والتطبيقات +والتطبيقية +والتطرف +والتطفل +والتطلع +والتطهير +والتطور +والتطورات +والتطوير +والتعارف +والتعالي +والتعاليم +والتعامل +والتعاون +والتعاويذ +والتعب +والتعبئة +والتعبير +والتعبيرات +والتعثر +والتعجب +والتعجيل +والتعددية +والتعديل +والتعذيب +والتعرف +والتعرية +والتعريف +والتعرّف +والتعرُّض +والتعصب +والتعطيل +والتعظيم +والتعــــاطف +والتعقيد +والتعقيدات +والتعلق +والتعلم +والتعلمية +والتعليق +والتعليم +والتعليمات +والتعليمية +والتعمق +والتعويل +والتعيين +والتفاؤل +والتفاتة +والتفاصيل +والتفاعل +والتفاف +والتفاكر +والتفاني +والتفاهم +والتفاوض +والتفت +والتفتت +والتفتح +والتفتنا +والتفتّح +والتفجير +والتفرد +والتفرقة +والتفريع +والتفريعات +والتفسير +والتفكك +والتفكير +والتفكيكية +والتفنن +والتفوق +والتفويض +والتفّ +والتقارب +والتقارير +والتقاليد +والتقانيات +والتقد +والتقدم +والتقدير +والتقديم +والتقريب +والتقسيم +والتقشير +والتقط +والتقطت +والتقعيد +والتقلب +والتقليد +والتقليدية +والتقني +والتقنيات +والتقنية +والتقنيين +والتقوقع +والتقوى +والتقويم +والتقى +والتقينا +والتقييم +والتكاثر +والتكافؤ +والتكامل +والتكايا +والتكبر +والتكبير +والتكبيرات +والتكتلات +والتكريم +والتكليف +والتكنولوجي +والتكنولوجيا +والتكنولوجيات +والتكنولوجية +والتكوين +والتلاحم +والتلاقح +والتلاقي +والتلال +والتلحين +والتلفزة +والتلفزيون +والتلفزيونية +والتلفون +والتلقائية +والتلمذة +والتلوث +والتلوين +والتليد +والتليفزيون +والتماثيل +والتمازج +والتماسيح +والتمتع +والتمثل +والتمثيل +والتمثيليات +والتمثيلية +والتمحيص +والتمر +والتمرد +والتمرس +والتمزقات +والتمسك +والتمهيد +والتمور +والتمويل +والتمويلية +والتموين +والتميز +والتمييز +والتميّز +والتناسلية +والتنافس +والتناقضات +والتنانير +والتنباك +والتنبيه +والتندر +والتنديد +والتنزه +والتنسيق +والتنظير +والتنظيرية +والتنظيم +والتنظيمات +والتنفس +والتنفيذيين +والتنقل +والتنقيب +والتنكيل +والتنموية +والتنمية +والتنوع +والتنوير +والتنوين +والتنويه +والتنوّع +والتهاب +والتهابات +والتهجد +والتهجمات +والتهدئة +والتهديد +والتهريب +والتهميش +والتهوين +والتوابل +والتواريخ +والتوازن +والتواصل +والتواضع +والتوافق +والتوالد +والتوبة +والتوتر +والتوترات +والتوثيق +والتوجس +والتوجه +والتوجهات +والتوجيه +والتوجيهية +والتوجّه +والتوحد +والتوحيد +والتوحيدي +والتوراة +والتوزيع +والتوسع +والتوسعات +والتوسل +والتوصيات +والتوصيلات +والتوصيلية +والتوظيف +والتوعية +والتوفيق +والتوقف +والتى +والتي +والتيار +والتيارات +والتيقظ +والتين +والثأر +والثائر +والثابت +والثالث +والثالثة +والثامن +والثانوي +والثانوية +والثاني +والثانية +والثانيةُ +والثبات +والثبور +والثدييات +والثروات +والثروة +والثعابين +والثعلب +والثقافات +والثقافة +والثقافي +والثقافية +والثقب +والثقة +والثقـافة +والثلاثة +والثلاثون +والثلاثين +والثلاثينيات +والثلج +والثلوج +والثمار +والثمانينيات +والثمرات +والثمينة +والثناء +والثنائي +والثنيات +والثوابت +والثوار +والثور +والثورات +والثورة +والثورية +والثياب +والثيران +والجاحظ +والجاذبية +والجاروف +والجاسوسية +والجامع +والجامعات +والجامعة +والجامعي +والجامعية +والجاه +والجاهلون +والجبال +والجبر +والجبرية +والجبل +والجبلية +والجدال +والجدة +والجدد +والجدران +والجدل +والجدلية +والجدي +والجديد +والجديدة +والجدير +والجديّة +والجذب +والجذل +والجذور +والجرأة +والجرائم +والجراحة +والجراحية +والجرجاوي +والجرح +والجرذان +والجرس +والجريء +والجريح +والجريدة +والجريمة +والجزء +والجزأين +والجزائر +والجزائريان +والجزائرية +والجزار +والجزر +والجزع +والجزيرة +والجسد +والجسدي +والجسدية +والجسم +والجشتية +والجشع +والجعلان +والجفاف +والجلالي +والجلد +والجلسات +والجلود +والجلوس +والجليد +والجليل +والجليلة +والجمادات +والجمارك +والجماعات +والجماعة +والجماعية +والجمال +والجمالية +والجمع +والجمعة +والجمعيات +والجمعية +والجملة +والجمنازيوم +والجمهور +والجمهوري +والجمهوريات +والجمود +والجميع +والجميل +والجميلات +والجميلة +والجنابي +والجندب +والجنس +والجنوب +والجنوبية +والجنود +والجنون +والجنيه +والجهات +والجهاد +والجهاز +والجهد +والجهل +والجهود +والجهوية +والجو +والجوائز +والجوارح +والجواسيس +والجوامع +والجوانب +والجواهري +والجود +والجودة +والجور +والجوع +والجوف +والجولان +والجولوفي +والجوهر +والجوية +والجياد +والجير +والجيش +والجينات +والجينز +والجينية +والجيوب +والجيولوجيا +والجيولوجيين +والحادي +والحارات +والحارس +والحاسبات +والحاسم +والحاسوب +والحاضر +والحاضنَ +والحافز +والحافل +والحافلات +والحاكي +والحال +والحالات +والحالة +والحاملة +والحب +والحبر +والحبوب +والحبور +والحبيب +والحج +والحجاب +والحجارة +والحجاز +والحجب +والحجة +والحجج +والحجر +والحجز +والحجلة +والحجم +والحد +والحدائق +والحداثة +والحدادين +والحدس +والحدود +والحديث +والحديثة +والحديد +والحديدية +والحديقة +والحذر +والحر +والحرائر +والحراب +والحرارة +والحراسة +والحراك +والحرام +والحرب +والحربي +والحربين +والحرص +والحرف +والحرفة +والحرفي +والحرفية +والحرفيين +والحركات +والحركة +والحرمان +والحروب +والحروف +والحروفية +والحروق +والحريات +والحرية +والحرير +والحرّ +والحزب +والحزبان +والحزبيين +والحزن +والحس +والحساب +والحساسية +والحسد +والحسرة +والحسك +والحسن +والحسي +والحسية +والحشائش +والحشرات +والحشرية +والحصاد +والحصار +والحصان +والحصبة +والحصر +والحصول +والحصون +والحض +والحضارات +والحضارة +والحضاري +والحضارية +والحضر +والحط +والحظ +والحـد +والحـدائق +والحـضارة +والحـضارية +والحفاظ +والحفاوة +والحفر +والحفلات +والحفيدتين +والحق +والحقائب +والحقائق +والحقب +والحقوق +والحقوقية +والحقوقيين +والحقول +والحقيبة +والحقيقة +والحقيقيين +والحكاك +والحكام +والحكايات +والحكة +والحكم +والحكماء +والحكمة +والحكومات +والحكومة +والحكومي +والحل +والحلاجين +والحلان +والحلم +والحلول +والحلوى +والحلي +والحليب +والحمار +والحماس +والحماسة +والحمام +والحمامات +والحمامى +والحماية +والحمد +والحمدلله +والحمراء +والحمقاء +والحمل +والحملات +والحمى +والحمية +والحمير +والحمّاد +والحنان +والحنجرة +والحنين +والحواجز +والحوادث +والحوار +والحواريون +والحواريين +والحواس +والحولي +والحوليات +والحويصلات +والحي +والحياء +والحياة +والحية +والحيرة +والحيطة +والحين +والحيوان +والحيوانات +والحيوانى +والحيواني +والحيوانية +والحيوية +والخ +والخائن +والخاتم +والخاتونية +والخارج +والخارجى +والخارجي +والخارجية +والخاص +والخاصة +والخاكي +والخالية +والخامات +والخامس +والخامسة +والخباز +والخبر +والخبراء +والخبرات +والخبرة +والخبز +والختامية +والختمية +والخدمات +والخدماتية +والخدمة +والخدمية +والخديعة +والخديوي +والخراب +والخراجات +والخرافات +والخردوات +والخرسانة +والخرطوم +والخرم +والخروج +والخريجين +والخريف +والخزانات +والخزف +والخزّافين +والخسائر +والخسارة +والخشب +والخصائص +والخصب +والخصوصية +والخصية +والخضار +والخضر +والخضراوات +والخضرة +والخضروات +والخط +والخطاب +والخطابات +والخطاطين +والخطب +والخطباء +والخطر +والخطرة +والخطط +والخطوات +والخطوط +والخطيبة +والخطير +والخفة +والخفيفة +والخفيّ +والخلاب +والخلاص +والخلاصة +والخلافة +والخلايا +والخلجات +والخلط +والخلفاء +والخلفية +والخلق +والخلقية +والخلود +والخليج +والخليجي +والخليجية +والخليجيين +والخليط +والخليفة +والخمائر +والخمس +والخمسون +والخمسين +والخمسينيات +والخنادق +والخوارزمي +والخوارق +والخورنقات +والخوف +والخيار +والخيارات +والخياط +والخياطة +والخياطين +والخيال +والخيالات +والخيانة +والخير +والخيرة +والخيش +والخيل +والخيوط +والد +والدائم +والداخل +والداخلي +والداخلية +والدار +والدارسون +والدارسين +والداعية +والداعين +والدافئة +والدافعية +والداه +والداها +والداي +والدبابات +والدبلوماسي +والدبلوماسية +والدبلوماسيون +والدة +والدته +والدتها +والدتي +والدجاجة +والدجاني +والدخان +والدخل +والدخلاء +والدخول +والدراسات +والدراسة +والدراما +والدراهم +والدراية +والدرج +والدرس +والدروع +والدساكر +والدستورية +والدسمة +والدشت +والدعاء +والدعاة +والدعايات +والدعاية +والدعم +والدعوات +والدعوة +والدفاع +والدفتردار +والدفع +والدفعات +والدفوف +والدفيئة +والدقائق +والدقة +والدقيق +والدقيقة +والدك +والدكتاتورية +والدكتور +والدكتورة +والدكم +والدلافين +والدلال +والدلنج +والدليل +والدم +والدماء +والدمار +والدمام +والدمج +والدمع +والدموع +والدمى +والدنمارك +والدنيا +والدنيوي +والدنيوية +والده +والدها +والدهشة +والدهم +والدهما +والدهون +والدو +والدواء +والدوائر +والدواجن +والدوار +والدوافع +والدودة +والدور +والدوريات +والدوشات +والدول +والدولة +والدولى +والدولي +والدولية +والدومينيك +والدونية +والدوهم +والدى +والدي +والديار +والديانة +والديباج +والديدان +والديك +والديكور +والديمقراطي +والديمقراطية +والديمومة +والدين +والديناميت +والديناميكا +والديناميكية +والديني +والدينية +والديه +والديها +والديهم +والديون +والديّ +والدُه +والدُّرّة +والذئاب +والذات +والذاتية +والذاكرة +والذبابة +والذرائع +والذرة +والذكاء +والذكر +والذكرى +والذكريات +والذل +والذنوب +والذهاب +والذهب +والذهنية +والذهول +والذوبان +والذوق +والذى +والذي +والذين +والرأسمالية +والرأفة +والرأي +والرؤساء +والرؤى +والرؤي +والرؤيا +والرؤية +والرئاسة +والرئاسية +والرئة +والرئيس +والرابع +والراحة +والرازي +والراست +والراعي +والرافضة +والراكب +والراهن +والرب +والربابة +والرباط +والربع +والربلة +والربو +والربيع +والرتوش +والرتيبة +والرجاء +والرجال +والرجل +والرجوع +والرجولة +والرحالة +والرحلات +والرحمة +والرحيق +والرحيل +والرحّالة +والرخامة +والرد +والردة +والردف +والردود +والرذائل +والرزق +والرزين +والرسائل +والرسالة +والرسالي +والرسام +والرسامين +والرسم +والرسمي +والرسمية +والرسوم +والرسومات +والرشاش +والرشاشات +والرشاقة +والرصاص +والرصانة +والرصد +والرصيد +والرصين +والرضا +والرضَّع +والرطوبة +والرعاية +والرعد +والرعي +والرفائين +والرفاهية +والرفد +والرفض +والرفق +والرقابة +والرقص +والرقي +والرقيق +والركع +والركن +والركود +والرمال +والرمان +والرمزية +والرمل +والرموز +والرموش +والرنجة +والرهبة +والروابط +والروابي +والرواج +والروايات +والرواية +والروايتان +والروح +والروحانية +والروحانيين +والروحي +والروحية +والروس +والروسي +والروسية +والروعة +والرومان +والرومانسكية +والرومانسية +والروماني +والرومانية +والرومانيين +والرومنطيقية +والرونق +والروية +والري +والرياح +والرياض +والرياضات +والرياضة +والرياضيات +والرياضية +والريبة +والريح +والريحـــان +والريشة +والريف +والرُها +والرّبح +والرَّضاع +والز +والزائر +والزائرين +والزبد +والزبيب +والزجاج +والزجر +والزحام +والزخارف +والزخرفة +والزراعة +والزراعي +والزراعية +والزرزور +والزرع +والزرنيخ +والزعفران +والزعماء +والزعيم +والزفاف +والزفير +والزقازيق +والزكاة +والزمان +والزماني +والزمانية +والزمرد +والزمن +والزميل +والزنك +والزهاد +والزهد +والزهو +والزهور +والزوابع +والزواج +والزوار +والزوايا +والزوجات +والزوجة +والزوّار +والزي +والزيات +والزيادة +والزيارات +والزيارة +والزيت +والزيتون +والزيتوني +والزير +والزيف +والزين +والزينة +والزيوت +والس +والسؤال +والسائح +والسائحين +والسابع +والسابقين +والساحات +والساحة +والساحرات +والساخرة +والساخنة +والسادس +والساسة +والساعة +والسالمون +والسالمية +والسامي +والسامية +والسب +والسباب +والسبب +والسببية +والسبت +والسبعين +والسبعينيات +والسبق +والسبل +والسبوع +والسبيل +والستين +والستينيات +والسجاد +والسجن +والسحاق +والسحب +والسحر +والسحرة +والسحوبات +والسدسية +والسدود +والسرطان +والسرعة +والسرقة +والسريالي +والسرياني +والسريانية +والسعادة +والسعال +والسعر +والسعودة +والسعودي +والسعودية +والسعي +والسعيد +والســـــنة +والسفر +والسفراء +والسفن +والسفير +والسقف +والسقم +والسقوط +والسكان +والسكانية +والسكتة +والسكر +والسكري +والسكريات +والسكك +والسكن +والسكون +والسكير +والسكين +والسكينة +والسل +والسلاح +والسلاحف +والسلام +والسلامة +والسلبيات +والسلبية +والسلطات +والسلطان +والسلطة +والسلع +والسلم +والسلوان +والسلوك +والسلوكيات +والسلوكية +والسليم +والسليمة +والسماء +والسمات +والسماح +والسماد +والسمان +والسماوات +والسمر +والسمعيات +والسمك +والسمكة +والسمن +والسميط +والسنة +والسند +والسندباد +والسنن +والسنهوري +والسنوات +والسنون +والسنين +والسنّة +والسهر +والسهرات +والسهروردية +والسواتر +والسواح +والسواحل +والسواقي +والسود +والسودان +والسورية +والسوريين +والسوفت +والسوق +والسونا +والسويد +والسيئ +والسيئات +والسياب +والسياح +والسياحة +والسياحـة +والسياحـية +والسياحي +والسياحية +والسيارات +والسيارة +والسياسات +والسياسة +والسياسي +والسياسية +والسياسيون +والسياسيين +والسيخ +والسيد +والسيدة +والسير +والسيرة +والسيطرة +والسيكولوجية +والسيلولوز +والسينما +والسينمائية +والسينمائيين +والسيول +والسيولة +والسيّاح +والسُل +والسَّمْت +والشؤون +والشئون +والشائع +والشاب +والشابات +والشاذ +والشارع +والشاطئ +والشاعر +والشاعرة +والشاعرية +والشاليهات +والشام +والشامخ +والشامل +والشاميات +والشانزيليزيه +والشاهد +والشاي +والشباب +والشباكية +والشبكات +والشبكة +والشبكية +والشتاء +والشتائم +والشتلات +والشتم +والشجاعة +والشجر +والشجرة +والشجيرات +والشحاحير +والشحـن +والشحن +والشحنات +والشخص +والشخصيات +والشخصية +والشخير +والشدو +والشديدة +والشر +والشراء +والشرائح +والشراب +والشراشف +والشراع +والشرايين +والشرب +والشرح +والشرطة +والشرع +والشرفاء +والشرق +والشرقية +والشركات +والشركة +والشروط +والشريعة +والشريف +والشطحات +والشطرنج +والشظايا +والشعائر +والشعاب +والشعارات +والشعب +والشعبي +والشعبية +والشعر +والشعراء +والشعري +والشعرية +والشعوب +والشعور +والشعير +والشفا +والشفاء +والشفط +والشقاء +والشقق +والشك +والشكر +والشكل +والشكلُ +والشكوى +والشلال +والشمس +والشمع +والشمندر +والشمول +والشنطة +والشهادات +والشهادة +والشهد +والشهرة +والشهرستاني +والشهيد +والشوارع +والشواطئ +والشورى +والشوفانية +والشوكولا +والشوكولاتة +والشيء +والشيخ +والشيخوخة +والشيشان +والشيعة +والشيعيون +والشيوعية +والشَّرف +والصابون +والصادقة +والصالة +والصالونات +والصانع +والصبا +والصبايا +والصبر +والصبي +والصحافة +والصحبة +والصحة +والصحراء +والصحـية +والصحف +والصحفي +والصحفية +والصحفيين +والصحو +والصحون +والصحي +والصحية +والصحيح +والصخرة +والصخور +والصداع +والصداقة +والصدامات +والصدفية +والصدق +والصدقات +والصدور +والصديق +والصديقين +والصراخ +والصراصير +والصراط +والصراع +والصراعات +والصرخات +والصرف +والصعاب +والصعوبات +والصعود +والصفاء +والصفات +والصفحات +والصفراء +والصفية +والصفيح +والصقليين +والصقيع +والصلاة +والصلب +والصلبة +والصلة +والصلدة +والصلصال +والصلوات +والصليب +والصمت +والصناع +والصناعات +والصناعة +والصناعي +والصناعية +والصنايعية +والصندوق +والصهيونية +والصواب +والصواريخ +والصوت +والصوتيات +والصوتية +والصور +والصورة +والصوفي +والصوفية +والصومال +والصون +والصويحبات +والصيانة +والصيد +والصيدلاني +والصيدلة +والصيدليات +والصيدلية +والصيف +والصين +والصيني +والصينية +والصَّابرة +والضائعين +والضاربون +والضباط +والضجر +والضجيج +والضحايا +والضحك +والضحكات +والضحى +والضراء +والضرب +والضرر +والضرورة +والضرورية +والضريبة +والضعفاء +والضفة +والضلال +والضلالات +والضلع +والضمة +والضوء +والضوابط +والضوضاء +والضيافة +والضيف +والضيوف +والطائرات +والطائف +والطائفي +والطائفية +والطاعة +والطاعون +والطاقات +والطاقة +والطاقية +والطالب +والطالبات +والطامح +والطب +والطباع +والطباعة +والطباق +والطبقات +والطبقة +والطبقي +والطبيب +والطبيبات +والطبية +والطبيعة +والطبيعي +والطبيعيات +والطبيعية +والطحالب +والطحين +والطرائف +والطرب +والطرق +والطرقات +والطروحات +والطريف +والطريق +والطريقة +والطعام +والطعين +والطفح +والطفل +والطفولة +والطفولية +والطفيليات +والطفيليين +والطقس +والطقوس +والطلاء +والطلاب +والطلابي +والطلب +والطلبة +والطمأنينة +والطماطم +والطموح +والطموحات +والطهر +والطوائف +والطوب +والطوسي +والطوفان +والطويل +والطويلة +والطيب +والطيبة +والطير +والطيران +والطيور +والظالمة +والظاهر +والظاهرة +والظباء +والظروف +والظفر +والظلام +والظلاميين +والظلم +والظلمة +والظهران +والظواهر +والعائد +والعائلات +والعائلة +والعابرة +والعابرون +والعابرين +والعاج +والعاجزون +والعاجلة +والعادات +والعارفين +والعاشر +والعاشق +والعاصفة +والعاصمة +والعاطفة +والعاطفي +والعاكفين +والعالم +والعالمي +والعالمية +والعالي +والعام +والعامة +والعامل +والعاملون +والعاملين +والعباد +والعبارات +والعبارة +والعبث +والعبد +والعبدلي +والعبقرية +والعبوات +والعبيد +والعتابة +والعتيق +والعجز +والعجزة +والعجلات +والعجم +والعجمي +والعجيب +والعداء +والعدالة +والعداوة +والعدسات +والعدل +والعدم +والعدوان +والعدوى +والعديد +والعذاب +والعراق +والعراقة +والعراقُ +والعراوي +والعرب +والعربى +والعربي +والعربية +والعرجي +والعرس +والعرض +والعرفان +والعرق +والعرقية +والعروبة +والعروض +والعريف +والعريق +والعزاء +والعزف +والعزلة +والعسكر +والعسكري +والعسكرية +والعسل +والعسيرين +والعشاء +والعشب +والعشرون +والعشرين +والعصابة +والعصاة +والعصافير +والعصب +والعصبية +والعصر +والعصي +والعصيان +والعضلات +والعضو +والعطاء +والعطس +والعطش +والعطلات +والعظام +والعظم +والعظماء +والعظمة +والعظيمات +والعفاريت +والعفش +والعقائد +والعقاب +والعقاد +والعقارب +والعقاقير +والعقب +والعقبات +والعقبة +والعقديات +والعقل +والعقلانية +والعقلية +والعقوبات +والعقود +والعقول +والعقيق +والعكس +والعلا +والعلائق +والعلاج +والعلاجات +والعلاجية +والعلاقات +والعلاقة +والعلامات +والعلة +والعلم +والعلماء +والعلمانية +والعلمانيون +والعلمانيين +والعلمي +والعلمية +والعلن +والعلو +والعلوم +والعليا +والعمارات +والعمارة +والعمال +والعمالة +والعمامة +والعمران +والعمرانية +والعمرة +والعمرية +والعمق +والعمل +والعملاء +والعملات +والعملاق +والعملان +والعملي +والعمليات +والعملية +والعمود +والعميقة +والعناد +والعناصر +والعناكب +والعناوين +والعناية +والعنب +والعنصر +والعنصرية +والعنف +والعنق +والعنوان +والعنود +والعنيف +والعنيفة +والعهدة +والعواصف +والعوامل +والعودة +والعوز +والعولمة +والعويد +والعويل +والعيادة +والعياذ +والعيب +والعيدين +والعيزرية +والعيساوية +والعيش +والعين +والعيوب +والعيون +والعِبَر +والعِدّة +والعِوز +والـجَلَد +والـــهواء +والـمتجمِّلة +والـهَنَاء +والفئران +والفائدة +والفائزون +والفاتحون +والفاتحين +والفارابي +والفارس +والفارسي +والفارسية +والفارق +والفاروق +والفاطمي +والفاطميون +والفاعل +والفاعلة +والفاقة +والفاكس +والفاكهة +والفانوس +والفتاوى +والفترة +والفتيات +والفتيان +والفحص +والفحـص +والفحم +والفحوصات +والفخار +والفخامة +والفخرانية +والفداء +والفرات +والفراشات +والفراشي +والفرجة +والفرح +والفرد +والفردي +والفردية +والفرس +والفرشات +والفرص +والفرصة +والفرع +والفرعوني +والفرعيين +والفرق +والفرنج +والفرنسية +والفرنسيون +والفرنك +والفروسية +والفروع +والفريدة +والفرّ +والفزع +والفساتين +والفساد +والفسحة +والفسيفساء +والفسيولوجيا +والفسيولوجية +والفشل +والفصل +والفضاء +والفضائل +والفضائيات +والفضائية +والفضة +والفضل +والفضول +والفضوليون +والفطريات +والفطور +والفظاظة +والفعال +والفعاليات +والفعل +والفــل +والفقر +والفقراء +والفقه +والفقهي +والفقهيّ +والفقير +والفقيرة +والفقيه +والفكر +والفكرة +والفكري +والفكرية +والفلاح +والفلاسفة +والفلبين +والفلترة +والفلسطيني +والفلسطينية +والفلسطينيين +والفلسفات +والفلسفة +والفلسفي +والفلسفية +والفلفل +والفلك +والفلكية +والفلل +والفلوت +والفم +والفن +والفنادق +والفنان +والفنانات +والفنانة +والفنانون +والفنانين +والفنجان +والفندق +والفندقة +والفندقي +والفندقية +والفنون +والفني +والفنية +والفنيون +والفنيين +والفهم +والفواصل +والفواكه +والفوز +والفوسفات +والفوسفاتية +والفوسفورية +والفوضى +والفولجا +والفولكلورية +والفيتوري +والفيروسات +والفيزياء +والفيزيولوجية +والفيضان +والفيضانات +والفيـتامينات +والفيلة +والفيلسوف +والفينيقية +والقائم +والقائمين +والقابليات +والقادة +والقادرين +والقادم +والقاديانيين +والقارئ +والقارة +والقاص +والقاضي +والقاعات +والقاعدة +والقافية +والقانون +والقانوني +والقانونية +والقانونيين +والقاهرة +والقبائل +والقباطي +والقبعات +والقبلات +والقبلة +والقبوات +والقبول +والقتل +والقتلة +والقحط +والقدر +والقدرات +والقدرة +والقدس +والقدم +والقدمين +والقدوة +والقديس +والقديم +والقرآن +والقراء +والقراءات +والقراءة +والقرابين +والقرارات +والقراقوز +والقرد +والقردة +والقرص +والقرصنة +والقرضاوي +والقرم +والقرميد +والقرن +والقرود +والقروض +والقرون +والقرى +والقري +والقريبة +والقسم +والقشرة +والقشريات +والقص +والقصائد +والقصاصين +والقصبات +والقصة +والقصد +والقصدير +والقصص +والقصصي +والقصور +والقصيدة +والقصير +والقصيرة +والقضاء +والقضاة +والقضايا +والقضية +والقط +والقطاع +والقطاعات +والقطرية +والقطط +والقطن +والقفل +والقلائد +والقلاع +والقلاقل +والقلب +والقلق +والقلم +والقلنسوة +والقلوب +والقليل +والقماش +والقمر +والقمع +والقمم +والقنابل +والقناة +والقناصل +والقناعة +والقنبلة +والقنص +والقنفذ +والقنوات +والقهر +والقوات +والقوارب +والقوارير +والقواعد +والقوانين +والقوة +والقورمة +والقوصي +والقوقاز +والقول +والقومي +والقوميات +والقومية +والقوميين +والقوي +والقيادة +والقيادي +والقياس +والقياسات +والقيام +والقيقب +والقيم +والقيمة +والقيود +والقُطُر +والقِيَم +والكآبة +والكائنات +والكاتب +والكاتبات +والكاثارية +والكادميوم +والكارثة +والكارهان +والكاريبي +والكاشف +والكاكاو +والكالسيوم +والكانولا +والكاونترباص +والكبار +والكباري +والكبت +والكبدة +والكبرى +والكبس +والكبير +والكبيرة +والكتاب +والكتابات +والكتابة +والكتان +والكتب +والكتلة +والكتّاب +والكثافة +والكثير +والكثيرون +والكحول +والكذب +والكرامات +والكرامة +والكراهية +والكردى +والكرم +والكرملين +والكره +والكروم +والكريم +والكريمات +والكساء +والكسرة +والكسل +والكشف +والكشوف +والكعك +والكف +والكفاءات +والكفاح +والكفاية +والكل +والكلاب +والكلام +والكلب +والكلف +والكلمات +والكلمة +والكلى +والكليات +والكلية +والكم +والكمال +والكمان +والكمبيوتر +والكميات +والكميت +والكنائس +والكنافة +والكندية +والكنز +والكنسي +والكنوز +والكنيسة +والكهرباء +والكهربائيات +والكهربائية +والكوائين +والكوابيس +والكوات +والكوادر +والكوارث +والكوارك +والكوبرا +والكورية +والكوفة +والكوكب +والكولا +والكوميديا +والكوميدية +والكون +والكويت +والكويتية +والكي +والكيان +والكيف +والكيفية +والكيماويات +والكيماوية +والكيمياء +والكُتاب +واللائحة +واللاتين +واللاتينية +واللاجئين +واللاذقية +واللازمة +واللافت +واللامبالاة +واللبرالية +واللبن +واللبنانية +واللتين +واللجان +واللجنة +واللجنين +واللجوء +واللحظات +واللحظة +واللحم +واللحن +واللحوم +واللد +واللذان +واللذين +واللصوص +واللطف +واللعب +واللعنات +واللفظ +واللقاء +واللقاءات +واللقى +واللمز +والله +واللهاث +واللوائح +واللوحات +واللوز +واللوعة +واللون +واللونُ +واللي +واللياقة +والليالي +والليبرالية +والليث +والليطاني +والليل +والليلُ +والليمون +والليمونين +واللّه +والمأثورات +والمأساة +والمأكل +والمأكولات +والمألوف +والمأمن +والمأمول +والمأوى +والمؤامرات +والمؤتمر +والمؤتمرات +والمؤثر +والمؤثرات +والمؤثرة +والمؤدية +والمؤرخ +والمؤرخون +والمؤرخين +والمؤسسات +والمؤسساتي +والمؤسساتية +والمؤسسة +والمؤسسي +والمؤسف +والمؤشرات +والمؤلف +والمؤلفات +والمؤلم +والمؤمن +والمئات +والماء +والماجد +والمادي +والمادية +والمارة +والمارك +والماركسي +والماركسية +والمازني +والماشية +والماضي +والماعز +والمال +والمالي +والمالية +والماليزية +والمبادئ +والمبادرات +والمبادرة +والمباشرة +والمباني +والمبتكرة +والمبدئية +والمبدع +والمبدعين +والمبذر +والمبرمجين +والمبضع +والمبيت +والمبيدات +والمبيعات +والمبيعة +والمتأخرة +والمتأهب +والمتابع +والمتابعين +والمتاجر +والمتاحف +والمتاعب +والمتانة +والمتباعد +والمتباينة +والمتبتل +والمتبوعة +والمتتاليات +والمتتبع +والمتجانسة +والمتجددة +والمتجذّرة +والمتحامقين +والمتحجرة +والمتحضرة +والمتحف +والمتخصصة +والمتخيل +والمتداولة +والمتدرجة +والمتذوق +والمترجم +والمترجمة +والمتزن +والمتزنة +والمتسائلين +والمتسلطين +والمتسوقون +والمتسوقين +والمتسولين +والمتشابكة +والمتشعبة +والمتصلة +والمتصنعة +والمتصهين +والمتصوفة +والمتضررين +والمتطلبات +والمتطلعة +والمتطورة +والمتعالية +والمتعة +والمتعددة +والمتعلق +والمتعلقة +والمتعمقة +والمتفرج +والمتفوقين +والمتقاطعة +والمتقاعدين +والمتكامل +والمتكاملة +والمتلاحقة +والمتلقي +والمتلقّين +والمتمثلة +والمتمردون +والمتمركز +والمتميزة +والمتميزين +والمتناقضة +والمتنبي +والمتنزهات +والمتنقلين +والمتنورة +والمتنوعة +والمتوارث +والمتواصل +والمتواضعة +والمتوحشة +والمتوسط +والمتوسطة +والمتوسِّطة +والمتوقع +والمتوقعين +والمثابرة +والمثاعيب +والمثال +والمثالية +والمثقف +والمثقفين +والمثقّف +والمثل +والمثلث +والمثمرة +والمثير +والمجادلة +والمجاري +والمجازر +والمجاعات +والمجال +والمجالات +والمجالس +والمجتمع +والمجتمعات +والمجد +والمجدية +والمجر +والمجسمات +والمجلات +والمجلة +والمجلجل +والمجلدات +والمجلس +والمجمدة +والمجمع +والمجموعات +والمجموعة +والمجمّدة +والمجهر +والمجهول +والمجون +والمجوهرات +والمحاباة +والمحادثة +والمحارب +والمحاسبة +والمحاضرات +والمحاط +والمحافظات +والمحافظة +والمحافل +والمحاكاة +والمحاكمة +والمحامين +والمحبين +والمحتاج +والمحتاجين +والمحتالين +والمحترفون +والمحتل +والمحتوى +والمحددة +والمحدود +والمحدّثين +والمحسنين +والمحطات +والمحفزات +والمحفورة +والمحك +والمحلات +والمحلية +والمحمل +والمحيط +والمحيطات +والمخ +والمخاطية +والمخاطَب +والمخالف +والمخاوف +والمخبرين +والمخبولين +والمختبرات +والمخترع +والمخترعات +والمختصة +والمختصين +والمخدرات +والمخربة +والمخرج +والمخرشات +والمخزومي +والمخصِّبات +والمخطط +والمخطوط +والمخطوطات +والمخطوطة +والمخلفات +والمخلوط +والمخلوقات +والمخيلة +والمخيمات +والمخيّلة +والمد +والمدائح +والمداخل +والمداخلات +والمداد +والمدار +والمدارس +والمدافعة +والمدافعين +والمدافن +والمداولات +والمدجج +والمدخنين +والمدربة +والمدرس +والمدرسات +والمدرسة +والمدرسين +والمدعمة +والمدفعية +والمدن +والمدنيات +والمدنية +والمدهش +والمدير +والمدينة +والمدّ +والمذابح +والمذاقات +والمذاهب +والمذلة +والمذهبية +والمذهل +والمذيع +والمرء +والمرآة +والمرأة +والمرئيات +والمرئية +والمرابع +والمراثي +والمراجع +والمراجعات +والمراجعة +والمراحـل +والمراحل +والمرافئ +والمرافق +والمراقبة +والمراكز +والمراهق +والمربعات +والمربى +والمربيات +والمربين +والمرة +والمرتبطة +والمرتزقين +والمرتفعات +والمرج +والمرجان +والمرجرين +والمرجوة +والمرح +والمرحلة +والمرحوم +والمرخيات +والمرسومة +والمرض +والمرضى +والمرعب +والمرقمة +والمركز +والمركوب +والمرهقة +والمرور +والمرونة +والمرويات +والمريرة +والمريض +والمزاج +والمزارات +والمزارع +والمزايا +والمزمنات +والمزهر +والمزيد +والمسؤول +والمسؤولية +والمسئوليات +والمسئولية +والمسئولين +والمساء +والمسائل +والمسابح +والمسابقات +والمساجد +والمساحات +والمساحة +والمساس +والمساطر +والمساعدات +والمساعدة +والمسافة +والمسافرين +والمساكن +والمساكين +والمسالم +والمسامرات +والمسامرة +والمساندة +والمساهمة +والمساواة +والمستأجر +والمستثمر +والمستثمرين +والمستجدات +والمستجدّات +والمستحدثات +والمستحدثة +والمستشار +والمستشارين +والمستشرق +والمستشرقين +والمستشفيات +والمستصعبات +والمستضعفين +والمستطيل +والمستعملة +والمستقبل +والمستقبلية +والمستقر +والمستقلة +والمستكشفون +والمستكشفين +والمستلزمات +والمستمر +والمستمرة +والمستمع +والمستندات +والمستندة +والمستنسخات +والمستنقعات +والمستهلكين +والمستورد +والمستوردات +والمستوصفات +والمستوطنات +والمستوطنين +والمستوى +والمستوي +والمستويات +والمسجد +والمسجلين +والمسح +والمسرح +والمسرحي +والمسرحيات +والمسرحية +والمسعودي +والمسقط +والمسقوف +والمسكرات +والمسكن +والمسكنة +والمسلسلات +والمسلمون +والمسلمين +والمسموع +والمسموعة +والمسوق +والمسيحي +والمسيحية +والمسيحيون +والمسيرات +والمسيسيبي +والمشاركات +والمشاركة +والمشاركين +والمشاريع +والمشاعر +والمشاعل +والمشاكل +والمشاهد +والمشاهدات +والمشايخ +والمشترك +والمشترين +والمشتقات +والمشتي +والمشرب +والمشربيات +والمشرعين +والمشرفين +والمشرفَ +والمشروبات +والمشروعات +والمشعوذين +والمشقة +والمشكلة +والمشهد +والمشورة +والمشيمية +والمصاب +والمصابيح +والمصابين +والمصاحف +والمصادر +والمصادرات +والمصادقة +والمصارحة +والمصارف +والمصالح +والمصانع +والمصايف +والمصب +والمصحوبة +والمصدر +والمصدرة +والمصدّرة +والمصرارة +والمصروفات +والمصري +والمصريون +والمصريين +والمصطلحات +والمصلحة +والمصنفات +والمصنفين +والمصنوعات +والمصور +والمصورين +والمضايقات +والمضحية +والمضطرب +والمضمون +والمضي +والمطابقة +والمطار +والمطارات +والمطاردات +والمطاط +والمطاعم +والمطافئ +والمطالبة +والمطبات +والمطبخ +والمطر +والمطرب +والمطربات +والمطربين +والمطرد +والمطرزين +والمطرِّز +والمطعم +والمطلبية +والمطلوب +والمطهية +والمطول +والمظاهر +والمظهر +والمعابد +والمعادن +والمعارض +والمعارضة +والمعارف +والمعارك +والمعاصر +والمعاصرة +والمعاصم +والمعاصي +والمعاقين +والمعالجة +والمعالم +والمعامل +والمعاناة +والمعاني +والمعاهد +والمعاونة +والمعايشة +والمعايير +والمعبر +والمعبرة +والمعتدلين +والمعتقدات +والمعتقل +والمعتقلات +والمعتمد +والمعتمرين +والمعدات +والمعدنية +والمعذبين +والمعراج +والمعرض +والمعرضة +والمعرفة +والمعرفي +والمعرفية +والمعروف +والمعروفة +والمعري +والمعطيات +والمعقدة +والمعقول +والمعلقات +والمعلمات +والمعلمة +والمعلنة +والمعلومات +والمعماري +والمعمّرة +والمعنوي +والمعنويات +والمعنوية +والمعنى +والمعهد +والمعوزين +والمعوقات +والمعيشة +والمعيشية +والمفاتحة +والمفاتشة +والمفاجأة +والمفارش +والمفارقة +والمفاهيم +والمفاوض +والمفاوضات +والمفتش +والمفتوح +والمفردات +والمفروض +والمفضلة +والمفكر +والمفكرون +والمفكرين +والمفلطحة +والمفوضية +والمفيد +والمفيدة +والمقاتلين +والمقادير +والمقاربة +والمقارن +والمقاعد +والمقال +والمقالات +والمقامرين +والمقاهي +والمقاولات +والمقاولون +والمقاومة +والمقاييس +والمقتدر +والمقتنيات +والمقدامة +والمقدرة +والمقرنصات +والمقريزي +والمقصود +والمقنعة +والمقولات +والمقومات +والمقيم +والمقيمة +والمقيمين +والمكابدات +والمكابدة +والمكاتب +والمكاشفات +والمكافآت +والمكافأة +والمكالمات +والمكان +والمكانية +والمكتبات +والمكتبة +والمكتبية +والمكتسبات +والمكتوبة +والمكسب +والمكسيك +والمكلاّ +والمكلفة +والمكملة +والمكوس +والمكونات +والمكونة +والمكوّنة +والمكيفة +والملائمة +والملابس +والملابسات +والملاح +والملاحدة +والملاحظ +والملاحظة +والملاحقات +والملاحم +والملاحين +والملاريا +والملاك +والملاهي +والملبس +والملتقيات +والملح +والملحوظ +والملخص +والملذات +والملصقات +والملف +والملفوف +والملقب +والملك +والملكات +والملكة +والملل +والملمس +والملهي +والملوِّثات +والملّحنَيْن +والممارسات +والممارسة +والمماليك +والممتعة +والممتلئ +والممتلكات +والممثل +والممثلون +والممثلين +والممرات +والممكن +والمملكة +والمملوء +والمملوكي +والمملوكية +والممولين +والمميزة +والمميَّزة +والمناجم +والمناخ +والمنارة +والمنازل +والمناسب +والمناسبات +والمناسل +والمناشدات +والمناشف +والمناصب +والمناضل +والمناطق +والمناظر +والمناظرات +والمنافسة +والمنافي +والمناقب +والمناقشة +والمناهج +والمناوئين +والمناورة +والمنبر +والمنتج +والمنتجات +والمنتجعات +والمنتجين +والمنتزهات +والمنتظر +والمنتفعون +والمنتمين +والمنجمية +والمنح +والمنحدرات +والمنحدرين +والمنحنيات +والمنحوتات +والمنحى +والمنخفضة +والمندهشة +والمنزل +والمنزلية +والمنزه +والمنسوجات +والمنسي +والمنشآت +والمنشر +والمنصوب +والمنصورة +والمنطق +والمنطقة +والمنظر +والمنظم +والمنظمات +والمنظمة +والمنظور +والمنظوم +والمنظومة +والمنفلوطي +والمنفى +والمنقولة +والمنقّر +والمنكر +والمنكرات +والمنكرة +والمنكوبين +والمنمنمات +والمنهج +والمنهجية +والمهاجر +والمهاجرون +والمهاجرين +والمهارات +والمهارة +والمهاري +والمهام +والمهتمين +والمهجرية +والمهدئة +والمهدي +والمهذبة +والمهرجان +والمهرجانات +والمهري +والمهرّجين +والمهم +والمهمة +والمهمشين +والمهندس +والمهندسات +والمهندسة +والمهندسين +والمهني +والمهنية +والمهنيون +والموئل +والمواثيق +والمواد +والموارد +والمواساة +والمواسم +والمواصفات +والمواصلات +والمواطنون +والمواطنين +والمواظبة +والمواعظ +والمواعيد +والموافقات +والموافقة +والمواقع +والمواقف +والموالد +والموانئ +والمواني +والمواهب +والمواويل +والموت +والموتى +والموج +والموجز +والموجهة +والموجودة +والموجي +والموحد +والمودة +والموروث +والموروثة +والموريتاني +والموز +والموزعة +والموسم +والموسوعات +والموسوعة +والموسيقا +والموسيقار +والموسيقى +والموسيقية +والموسيقيّ +والموشحات +والموصل +والموصولة +والموصى +والموضوع +والموضوعي +والموضوعية +والموظفون +والموظفين +والموقف +والمولد +والمولعين +والمونتاج +والموهوب +والموهوبين +والموهومين +والميادين +والمياه +والميتان +والميثانول +والميداليات +والميدالية +والميديا +والميزانيات +والميكانيكا +والميكروب +والميكروبات +والميل +والمينا +والميوعة +والمُخلَّط +والناب +والنابلم +والناتجة +والناجم +والناجمة +والنادر +والنادى +والنادي +والنار +والنارية +والناس +والناصرة +والناصري +والنافذة +والناقة +والناقد +والناميات +والنامية +والناي +والنايلون +والنبأ +والنبابيت +والنبات +والنباتات +والنباتية +والنبيلة +والنتائج +والنتيجة +والنثري +والنثرية +والنجابة +والنجاح +والنجاحات +والنجارة +والنجارين +والنجف +والنجمة +والنجوم +والنحاس +والنحت +والنحر +والنحل +والنحو +والنحور +والنخبة +والنخيل +والنداءات +والندوات +والندى +والنرجسية +والنرويج +والنزاعات +والنزعة +والنزف +والنزهة +والنزوع +والنساء +والنساءُ +والنسائي +والنسب +والنسبة +والنسبية +والنسج +والنسر +والنسوية +والنسيج +والنشء +والنشأة +والنشاط +والنشاطات +والنشر +والنشوء +والنص +والنصف +والنصيحة +والنضال +والنظائر +والنظارتان +والنظافة +والنظام +والنظر +والنظرات +والنظريات +والنظم +والنظيفة +والنعاج +والنعمة +والنعيم +والنفاق +والنفايات +والنفس +والنفسي +والنفسية +والنفط +والنفطية +والنفع +والنفقات +والنفوذ +والنفور +والنفي +والنفْس +والنقاب +والنقابات +والنقاد +والنقب +والنقد +والنقدي +والنقدية +والنقشة +والنقطة +والنقل +والنقود +والنقوش +والنقي +والنكد +والنكوص +والنماء +والنماذج +والنمارق +والنمر +والنمسا +والنمو +والنموذج +والنموّ +والنميمة +والنهار +والنهايات +والنهب +والنهر +والنهضات +والنهضة +والنهوض +والنهي +والنوادر +والنوادي +والنوافذ +والنوافل +والنوبة +والنور +والنوع +والنوم +والنووية +والنياشين +والنياق +والنيتروجين +والنيترونية +والنيجر +والنيشانات +والنيكل +والنيكوتين +والنيل +والنيِّر +والنَّاهية +والهاتف +والهادفة +والهامة +والهبل +والهبوط +والهجر +والهجرة +والهجن +والهدايا +والهدف +والهدوء +والهراوات +والهرب +والهرسك +والهرطقات +والهرمونات +والهروب +والهزارات +والهزال +والهزام +والهزيمة +والهضاب +والهفوف +والهلال +والهلع +والهمجية +والهمز +والهموم +والهمّ +والهند +والهندسة +والهندسية +والهندي +والهندية +والهنود +والهواء +والهواة +والهواجس +والهوايات +والهودج +والهورمونات +والهوس +والهولنديين +والهوية +والهوّة +والهيئات +والهيئة +والهيدروجين +والهيكلية +والهيمنة +والواجب +والواجبات +والواحات +والواحة +والوارد +والواسع +والواعدة +والوافد +والوافدين +والواقع +والواقعة +والواقعي +والواقعية +والواقي +والوالدان +والوالدين +والواو +والوتر +والوجاهة +والوجبات +والوجداني +والوجدانية +والوجع +والوجنتين +والوجه +والوجودي +والوجوه +والوحدات +والوحدة +والوحشي +والوحشية +والوحل +والوحيد +والوحيدة +والوديان +والوديع +والورد +والوردي +والورش +والورع +والورق +والورقة +والورود +والورّاقين +والوزارات +والوزارة +والوزراء +والوزنُ +والوسائل +والوساوس +والوسط +والوسطي +والوسطية +والوسيلة +والوصايا +والوصايات +والوصل +والوصول +والوضع +والوضعية +والوضوح +والوطن +والوطنى +والوطنية +والوظائف +والوظيفي +والوظيفية +والوعاظ +والوعظ +والوعود +والوعي +والوفاء +والوفد +والوفرة +والوفود +والوقائع +والوقار +والوقاية +والوقت +والوقف +والوقود +والوقوع +والوقوف +والوكالات +والوكالة +والولاة +والولادة +والولايات +والولد +والولوج +والولي +والومضات +والوهن +والويل +والى +والي +واليأس +والياء +واليائس +واليابان +والياباني +واليابانية +واليابس +والياس +والياسمين +واليانصيب +والياً +واليباس +واليدوية +واليرموك +واليسار +واليفاع +واليفاعة +واليكانت +واليمامة +واليمن +والين +واليهود +واليهودية +واليورانيوم +واليوم +واليونان +واليونانية +واليونانيين +واليونسيف +واليونيسيف +وام +وامتاز +وامتثل +وامتحان +وامتحت +وامتد +وامتدادا +وامتدادات +وامتداداً +وامتدادها +وامتدت +وامتزاج +وامتزج +وامتلأ +وامتلأت +وامتلكت +وامتناناً +وامتنع +وامتهن +وامرأة +وان +وانبثق +وانبرى +وانتابه +وانتبه +وانتخب +وانتركونتيننتال +وانتزاع +وانتسابي +وانتسبتُ +وانتشار +وانتشارها +وانتشارهم +وانتشارهن +وانتشر +وانتشرت +وانتصار +وانتظار +وانتظاره +وانتظرت +وانتظروا +وانتظمت +وانتظمتُ +وانتعاش +وانتفاء +وانتفاضة +وانتفض +وانتفضت +وانتقاء +وانتقادها +وانتقال +وانتقالها +وانتقام +وانتقل +وانتقلت +وانتماءاتها +وانتماءه +وانتمائي +وانتهاء +وانتهاءً +وانتهاك +وانتهاكها +وانتهت +وانتهى +وانتهيت +وانتي +وانتُخب +وانثقابات +وانجذاب +وانجلت +وانجلترا +وانجليزية +وانحدرت +وانحراف +وانحسار +وانحناء +وانحنى +وانحيازك +وانخراطه +وانخرطت +وانخرطوا +وانخفاض +وانخفض +وانخفضت +واندثار +واندس +واندفاع +واندفاعه +واندفع +واندفعنا +واندهاشه +واندهاشي +وانزواء +وانسابت +وانسحبنا +وانسراح +وانسل +وانشراح +وانشقاق +وانصراف +وانصرف +وانصرفت +وانضباط +وانضم +وانضممن +وانطفأت +وانطلاقاً +وانطلاقي +وانطلق +وانطلقت +وانطوائه +وانظر +وانظري +وانعدام +وانعدامها +وانعصاراتنا +وانعطفت +وانعقاد +وانعقدت +وانعكاسات +وانعكاساتها +وانعكس +وانعكست +وانفتاحه +وانفتحت +وانفجارات +وانفجر +وانفصال +وانفصام +وانفعالات +وانفعالاته +وانفعاله +وانفعالية +وانفلت +وانقرضت +وانقسمت +وانقضت +وانقضى +وانقطاع +وانقطع +وانقطعت +وانقلابا +وانقلابات +وانقلب +وانقلبت +وانكسار +وانكساراتها +وانكوي +وانما +وانمائية +وانه +وانها +وانهارت +وانهالت +وانهماكهم +وانهمرت +وانهمكت +وانهيار +وانهيارحكومة +وانيط +واهبك +واهتز +واهتزاز +واهتم +واهتمام +واهتماماته +واهتمامه +واهتمامهم +واهتمت +واهتموا +واهن +واهنة +واهية +واهٍ +واية +وايت +وايتمن +وايتمور +وايزمن +وايسلندا +وايقاع +وايلامها +وايلد +وبأجزاء +وبأساليب +وبأسطح +وبأسعار +وبأسلوب +وبأسماء +وبأصوات +وبأعلى +وبأقدام +وبأمتهم +وبأمل +وبأن +وبأنسنتها +وبأنكم +وبأنه +وبأنها +وبأهميته +وبأية +وبإدراك +وبإرادته +وبإشراف +وبإصدار +وبإصداره +وبإضافة +وبإضـافة +وبإلهام +وبإمكان +وبإمكانية +وبإنشاء +وبئر +وبئس +وباء +وبائع +وبائعات +وبائيا +وبائية +وباب +وبابل +وبابلو +وبات +وباتت +وباتجاه +وباتوا +وباجر +وباحته +وباحث +وباحثون +وباحثين +وباختصار +وبادرت +وباردة +وبارز +وبارفيز +وباركنسون +وباركني +وباريس +وباستثناء +وباستخدام +وباستسلام +وباستطاعتي +وباستمرار +وباستور +وباسط +وباسم +وباسيل +وباشر +وباشرت +وباطن +وباع +وباعتبار +وباعتدال +وبافتتاح +وباقى +وباقي +وباكرا +وباكراً +وباكستان +وباكو +وبالأحضان +وبالأخص +وبالأصداف +وبالإضافة +وبالإنجازات +وبالازدراء +وبالانتقال +وبالاً +وبالبساطة +وبالبشر +وبالتأكيد +وبالتالى +وبالتالي +وبالتحاق +وبالتحديد +وبالتحكم +وبالتدريج +وبالتعاون +وبالتعليم +وبالتقسيط +وبالتنبؤات +وبالتواتر +وبالتوجهات +وبالحجاب +وبالحرس +وبالحلم +وبالحياة +وبالدرجة +وبالدولار +وبالذات +وبالرمو +وبالروايات +وبالزراعة +وبالسجن +وبالسعر +وبالسلطة +وبالسياق +وبالشعاب +وبالشعر +وبالصعود +وبالصلاة +وبالطبع +وبالظل +وبالعار +وبالعامية +وبالعبقرية +وبالعراقيل +وبالعسل +وبالعقل +وبالعكس +وبالعلم +وبالعودة +وبالفرسان +وبالفعل +وبالفن +وبالقدر +وبالقدرة +وبالقرب +وبالقلم +وبالكاد +وبالمثل +وبالمخطوطات +وبالمدير +وبالمرور +وبالمستقبل +وبالمعدل +وبالمعنى +وبالمفاوضات +وبالمفردات +وبالمقابل +وبالمكاسب +وبالملابس +وبالمناسبة +وبالمنتجع +وبالمنطقة +وبالميناء +وبالنتيجة +وبالنسبة +وبالنظر +وبالوسائل +وباليه +وباليونانية +وبانا +وباهت +وباهتة +وباور +وباورو +وببدء +وببروز +وببساطة +وببسـاطة +وببصيرة +وببطء +وببعض +وبت +وبتحديد +وبتحمل +وبتخطيطها +وبتر +وبترابط +وبتراكم +وبتركيبته +وبترها +وبتعديل +وبتفسير +وبتقديم +وبتقريبها +وبتكلفة +وبتلك +وبتناسق +وبتواضع +وبتواضعه +وبتوثيق +وبث +وبثروة +وبثقة +وبجانب +وبجرعات +وبجسد +وبجمال +وبجهد +وبجوار +وبحاجة +وبحار +وبحاراً +وبحت +وبحث +وبحثه +وبحثوا +وبحثي +وبحداثة +وبحديثها +وبحرارة +وبحركة +وبحرمانهما +وبحسب +وبحضارتها +وبحضور +وبحق +وبحقه +وبحكم +وبحلول +وبحمايتها +وبحوث +وبحوثا +وبحوثي +وبحيث +وبحيرة +وبحيرتها +وبخارى +وبخاصة +وبخبراتهم +وبخروج +وبخصوصية +وبخطه +وبخه +وبخور +وبخوف +وبدء +وبدءا +وبدءوا +وبدأ +وبدأت +وبدأنا +وبدأوا +وبدا +وبدائع +وبداهة +وبدايات +وبداياتها +وبداية +وبدايتك +وبدت +وبدخوله +وبدراسة +وبدرجات +وبدعمها +وبدعوة +وبدلا +وبدلاً +وبدليل +وبدنك +وبدهي +وبدهيات +وبدوره +وبدون +وبدوي +وبديع +وبديعها +وبديهي +وبذا +وبذرة +وبذكرى +وبذل +وبذلت +وبذلك +وبذور +وبذورها +وبر +وبرأي +وبرا +وبراءات +وبراءة +وبراءته +وبراريها +وبراعة +وبرامج +وبرامجه +وبراهينه +وبرايتن +وبرج +وبرزت +وبرسالته +وبرعاية +وبرعايته +وبرفقته +وبرفقتهم +وبركاته +وبركة +وبرلمانية +وبرمَ +وبرنارد +وبرناردشو +وبرناسيّة +وبرنامج +وبرنس +وبرهان +وبرهانا +وبروائع +وبروتينات +وبرودة +وبروز +وبروس +وبروكسل +وبريستول +وبريطانيا +وبريطانية +وبريقه +وبريقها +وبزوال +وبزيادة +وبس +وبساتينها +وبساطة +وبساطتها +وبسبب +وبسخاء +وبسرعة +وبسطاء +وبسطال +وبسطوع +وبسعر +وبسقف +وبسهولة +وبسيطة +وبشبكة +وبشخصية +وبشرا +وبشرني +وبشكل +وبشكلها +وبصاق +وبصحبته +وبصحة +وبصدد +وبصراحة +وبصرخة +وبصرف +وبصرنا +وبصره +وبصريا +وبصرية +وبصريح +وبصفة +وبصوت +وبصورة +وبضرورة +وبضوئها +وبطء +وبطاقات +وبطاقة +وبطباعتهم +وبطبيعة +وبطبيعته +وبطريقة +وبطل +وبطلا +وبطن +وبطولاتها +وبطولاتهم +وبطولة +وبطون +وبعاطفة +وبعبارة +وبعث +وبعثة +وبعثرة +وبعثرت +وبعد +وبعدئذ +وبعدا +وبعداً +وبعدد +وبعدما +وبعده +وبعدها +وبعدين +وبعض +وبعضنا +وبعضها +وبعضهم +وبعضهن +وبعطاء +وبعظمة +وبعلب +وبعلبك +وبعناية +وبعيد +وبعيدا +وبعيدان +وبعيداً +وبعيدة +وبعيدًا +وبفائدتها +وبفارق +وبفضل +وبفضله +وبفنها +وبقاع +وبقالب +وبقايا +وبقدر +وبقدراتي +وبقدرته +وبقرب +وبقسوة +وبقصيدة +وبقطع +وبقلب +وبقلة +وبقوة +وبقومه +وبقى +وبقي +وبقيادة +وبقياس +وبقية +وبقيت +وبقيتْ +وبقيع +وبقينا +وبقيّة +وبكت +وبكتيريا +وبكثير +وبكر +وبكفاءة +وبكل +وبكلابهم +وبكلمات +وبكوا +وبكونهم +وبكيت +وبل +وبلا +وبلابل +وبلاد +وبلاده +وبلت +وبلجيكا +وبلح +وبلحة +وبلحظة +وبلحن +وبلدان +وبلدانهم +وبلدة +وبلذة +وبلزاك +وبلهجة +وبلورة +وبلوشستان +وبلون +وبليني +وبما +وبماليتها +وبمتعة +وبمجتمعاتنا +وبمجتمعاته +وبمجرد +وبمختلف +وبمرور +وبمساحة +وبمساعدة +وبمسرح +وبمصاحبة +وبمعنى +وبمعونة +وبمعيته +وبمعيتها +وبمفاهيم +وبمفعول +وبمقارنة +وبمقاعد +وبمقالات +وبمقدار +وبمناسبة +وبمهارة +وبموجب +وبموضوعية +وبناء +وبناءها +وبناءً +وبناءّ +وبناؤه +وبناؤهم +وبنائها +وبنات +وبناته +وبناتها +وبناتهم +وبناتي +وبنادقهم +وبنبرة +وبنت +وبنتا +وبنتك +وبنجر +وبنجلاديش +وبنسبة +وبنصر +وبنظرات +وبنظيرتها +وبنفس +وبنفسه +وبنك +وبنما +وبنهاية +وبنوك +وبنوه +وبنى +وبني +وبنية +وبنيت +وبنيتها +وبنَفَس +وبه +وبها +وبهاء +وبهاؤه +وبهاما +وبهتت +وبهجةً +وبهجت +وبهجوم +وبهذا +وبهذه +وبهرني +وبهما +وبهوس +وبوابة +وبواسطة +وبواعثها +وبوجود +وبودي +وبور +وبورتوريكو +وبوركينا +وبوساطة +وبوسطن +وبوسعي +وبوصلته +وبوضوح +وبوعي +وبوقا +وبوقت +وبول +وبولونيا +وبوهمند +وبوهيميّ +وبي +وبيئاته +وبيئة +وبيئته +وبيئية +وبيات +وبياطرة +وبيان +وبيانات +وبياواي +وبيت +وبيتر +وبيده +وبيدها +وبيروت +وبيزنطة +وبيسان +وبيض +وبيضاء +وبيع +وبيعها +وبيليز +وبين +وبينت +وبينجامين +وبينما +وبينه +وبينها +وبينهم +وبينهما +وبينهن +وبيوت +وبيوتها +وبيّن +وبَلْوره +وتآكل +وتأبى +وتأبي +وتأتأة +وتأتى +وتأتي +وتأثر +وتأثراتها +وتأثرت +وتأثره +وتأثير +وتأثيرا +وتأثيراته +وتأثيره +وتأثيرهما +وتأثيرًا +وتأجج +وتأجير +وتأخذ +وتأخر +وتأخير +وتأخيراً +وتأريخه +وتأسست +وتأسيس +وتأسيساً +وتأشيرة +وتأصيل +وتأكد +وتأكدت +وتأكدتْ +وتأكل +وتأكيد +وتأكيداً +وتألقت +وتألقه +وتأليف +وتأمر +وتأمل +وتأملا +وتأملات +وتأملاتي +وتأميم +وتأمين +وتأمينا +وتأنقه +وتأنيب +وتأهبا +وتأهيل +وتأهيله +وتأهيلي +وتأويلات +وتأويلاتها +وتأييدها +وتؤثر +وتؤدى +وتؤدي +وتؤكد +وتؤلمني +وتؤمن +وتؤيد +وتابع +وتابعا +وتابعت +وتابعه +وتاجر +وتارة +وتاريخ +وتاريخاً +وتاريخه +وتاريخها +وتاريخهم +وتاريخيا +وتاريخية +وتاريخيتها +وتالله +وتالياً +وتاليتها +وتاه +وتايبيه +وتايلاند +وتايوان +وتبادل +وتبادلات +وتبادلنا +وتبادلهم +وتبادلوا +وتباع +وتباعدا +وتباين +وتباينا +وتباينت +وتبتذل +وتبتسم +وتبتعد +وتبتكر +وتبث +وتبجيل +وتبجّح +وتبدأ +وتبدد +وتبدلاتها +وتبدو +وتبرئة +وتبرر +وتبرز +وتبرع +وتبريرية +وتبريز +وتبعاً +وتبعت +وتبعثرت +وتبعد +وتبعيته +وتبعيتهم +وتبعًا +وتبقى +وتبقي +وتبكي +وتبلع +وتبليس +وتبنت +وتبني +وتبنيت +وتبنيه +وتبنّي +وتبوك +وتبويبها +وتبي +وتبيع +وتبين +وتبيّنت +وتتأكَّد +وتتألف +وتتأمل +وتتأهب +وتتابع +وتتابعت +وتتباين +وتتبدل +وتتبدى +وتتبع +وتتبلور +وتتبنى +وتتثبت +وتتجاوز +وتتجدد +وتتجشأ +وتتجمع +وتتجه +وتتحدث +وتتحرك +وتتحسس +وتتحقق +وتتحكَّم +وتتحلل +وتتحمل +وتتحول +وتتحوّل +وتتخذ +وتتخصص +وتتداخل +وتتداعى +وتتدافع +وتتدنى +وتتراءى +وتتراوح +وتتربص +وتترجم +وتترقبان +وتترك +وتتركني +وتتركّز +وتتزايد +وتتزواج +وتتساءل +وتتساقط +وتتساوى +وتتسبب +وتتسترون +وتتسلل +وتتسلى +وتتسم +وتتشابه +وتتشبث +وتتشعب +وتتشوش +وتتصاعد +وتتصدر +وتتصرف +وتتصف +وتتصل +وتتضافر +وتتضح +وتتضخم +وتتضمن +وتتطلب +وتتطلع +وتتطهر +وتتطور +وتتعاظم +وتتعالى +وتتعاون +وتتعايش +وتتعدد +وتتعر +وتتعرض +وتتعلق +وتتعمدين +وتتفاقم +وتتفاوت +وتتفهم +وتتفوق +وتتفوّق +وتتقاطع +وتتقلب +وتتقلد +وتتقيأ +وتتكرر +وتتكلم +وتتكون +وتتلخص +وتتلف +وتتلقى +وتتلمذ +وتتلمذوا +وتتم +وتتماشى +وتتمتع +وتتمثل +وتتمدد +وتتمسح +وتتميز +وتتناثر +وتتنامى +وتتناول +وتتنفس +وتتنوع +وتتهدج +وتتهشم +وتتواصل +وتتوافد +وتتوالى +وتتوزع +وتتوسط +وتتوفر +وتتوقع +وتتوقف +وتتولى +وتتويج +وتتيح +وتثبيت +وتثبيتها +وتثقيفها +وتثني +وتثير +وتجاذبا +وتجار +وتجارب +وتجاربه +وتجاربها +وتجاربي +وتجارة +وتجارتهم +وتجارياً +وتجارية +وتجاه +وتجاوب +وتجاوبا +وتجاور +وتجاوز +وتجاوزت +وتجاوزه +وتجاوزًا +وتجبر +وتجد +وتجددها +وتجدر +وتجدون +وتجديد +وتجديده +وتجذب +وتجربة +وتجربته +وتجربتها +وتجرداً +وتجردك +وتجرى +وتجري +وتجريباً +وتجريحا +وتجريف +وتجرُّدٍ +وتجسد +وتجسدت +وتجسيدي +وتجشُّؤ +وتجعل +وتجعلني +وتجعله +وتجعلها +وتجف +وتجفيف +وتجلت +وتجلى +وتجليات +وتجلياته +وتجلّياتها +وتجمع +وتجمعات +وتجمعاً +وتجميع +وتجميلي +وتجنب +وتجنبا +وتجند +وتجهيزات +وتجهيزه +وتجهيزها +وتجولت +وتجويد +وتجويده +وتجيبنا +وتجّار +وتحاصره +وتحاصرهم +وتحافظ +وتحاكي +وتحاول +وتحايل +وتحب +وتحبه +وتحت +وتحتاج +وتحترمها +وتحتضن +وتحتفظ +وتحتل +وتحتمل +وتحتمي +وتحتنا +وتحته +وتحتها +وتحتوي +وتحث +وتحجر +وتحدث +وتحدثت +وتحدثتم +وتحدثنا +وتحدي +وتحديا +وتحديات +وتحديث +وتحديثها +وتحديد +وتحديدا +وتحديداً +وتحديده +وتحديه +وتحذيرات +وتحذيرهن +وتحررها +وتحرص +وتحرضهم +وتحرق +وتحرير +وتحريرها +وتحريك +وتحريم +وتحزن +وتحس +وتحسب +وتحسبين +وتحسر +وتحسن +وتحسين +وتحسينها +وتحصد +وتحصل +وتحصيل +وتحصينها +وتحصّنت +وتحضير +وتحطم +وتحطمت +وتحطيم +وتحظى +وتحـديد +وتحـليل +وتحفز +وتحفيز +وتحفيظ +وتحفيظه +وتحقق +وتحققت +وتحققه +وتحقيق +وتحقيقات +وتحقيقاتنا +وتحقيقاً +وتحقيقها +وتحكم +وتحكمت +وتحكمه +وتحكي +وتحكيان +وتحكّم +وتحل +وتحلب +وتحلل +وتحلله +وتحلم +وتحليل +وتحليلاتها +وتحليلاتهم +وتحليله +وتحليلها +وتحمر +وتحمل +وتحملون +وتحمي +وتحول +وتحولات +وتحولت +وتحولها +وتحولوا +وتحوي +وتحويل +وتحويله +وتحويلها +وتحويلهم +وتحويلهما +وتحوّل +وتحوّلات +وتحوّلاته +وتحوّله +وتحياها +وتحيط +وتحين +وتخاذل +وتخالف +وتخبرنا +وتخبّط +وتختار +وتخترق +وتختزنه +وتختفي +وتختلف +وتخدم +وتخرب +وتخرج +وتخرجت +وتخزين +وتخزينه +وتخزينها +وتخسر +وتخشاها +وتخشى +وتخصيص +وتخصَّص +وتخضع +وتخطاه +وتخطر +وتخطط +وتخطى +وتخطيطات +وتخطيطه +وتخفض +وتخفف +وتخفيض +وتخفيف +وتخلخل +وتخلف +وتخلو +وتخلي +وتخليدها +وتخليص +وتخليصها +وتخليقها +وتخليها +وتخلّفها +وتخمّر +وتخوُّفاً +وتخيل +وتخيلاته +وتخيلته +وتخييل +وتداخل +وتداخلت +وتداخلها +وتدار +وتداعبني +وتداعيات +وتدافع +وتدب +وتدبر +وتدبّ +وتدبّر +وتدجينه +وتدجينها +وتدخل +وتدخلت +وتدخين +وتدرج +وتدرجها +وتدرس +وتدرك +وتدريب +وتدريبا +وتدريبها +وتدريس +وتدريسه +وتدريسهم +وتدرّس +وتدشين +وتدعم +وتدعمها +وتدعو +وتدعونا +وتدعوني +وتدعى +وتدعي +وتدفع +وتدفق +وتدفّقت +وتدق +وتدل +وتدليكه +وتدمج +وتدمجها +وتدمرها +وتدمع +وتدمير +وتدني +وتدهشك +وتدهور +وتدور +وتدوم +وتدير +وتديرها +وتدين +وتدّعي +وتذكر +وتذكرت +وتذكرنا +وتذكرني +وتذكري +وتذليل +وتذهب +وتذوقه +وتذويب +وتذويقه +وتر +وترأس +وترأست +وترابطها +وتراث +وتراثنا +وتراثه +وتراثها +وتراثهم +وتراثية +وتراجع +وتراجعا +وتراجم +وتراحمهم +وتراقب +وتراكم +وتران +وتراه +وتربة +وتربص +وتربطهم +وتربع +وتربوي +وتربوية +وتربويين +وتربى +وتربي +وتربية +وتربيته +وتربيهم +وترة +وترتاد +وترتبط +وترتجي +وترتد +وترتدي +وترتفع +وترتقب +وترتيب +وترثي +وترجع +وترجم +وترجمت +وترجمته +وترجمها +وترجو +وترحالنا +وترحل +وترحماً +وترحيب +وترد +وتردت +وتردد +وترديده +وترسبت +وترسبه +وترسخ +وترسل +وترسيب +وترسيخ +وترشح +وترشيد +وترصد +وترصعها +وترضى +وترضي +وترطيب +وترعانا +وترعاه +وترعرع +وترعرعت +وترعى +وترفض +وترفع +وترفعه +وترفيعا +وترفيه +وترفيهية +وترقبت +وترك +وتركب +وتركت +وتركته +وتركتهما +وتركز +وتركزت +وتركنا +وتركه +وتركها +وتركهم +وتركوا +وتركوني +وتركوهم +وتركيا +وتركيب +وتركيزها +وترمي +وترميم +وترميمها +وترنحت +وترهبنوا +وترهل +وتروح +وتروعت +وتروى +وترى +وتريد +وترينداد +وترينيداد +وتزاحم +وتزامن +وتزاوج +وتزايد +وتزايدت +وتزحف +وتزداد +وتزدهر +وتزرع +وتزكي +وتزلج +وتزن +وتزوج +وتزويج +وتزويده +وتزويدها +وتزويدهم +وتزوير +وتزوّده +وتزيد +وتزيل +وتزين +وتزييفها +وتزيين +وتسألها +وتساءل +وتساءلت +وتساؤلات +وتسائلها +وتسارعت +وتساعد +وتساهم +وتسبب +وتسبيحهم +وتسبِّب +وتستأثر +وتستثنى +وتستجدّ +وتستجلي +وتستجيب +وتستخدم +وتستخدمها +وتستدرج +وتستذكر +وتسترق +وتستريح +وتستشرف +وتستشهد +وتستطيع +وتستعد +وتستعذب +وتستعرض +وتستعمل +وتستعيد +وتستفحل +وتستفزه +وتستقدم +وتستقر +وتستكين +وتستمر +وتستنزف +وتستهدف +وتستهلك +وتستهلكه +وتستوحي +وتستوعب +وتستوعبه +وتستوفي +وتسجيل +وتسحبها +وتسخير +وتسخيرها +وتسد +وتسرب +وتسرق +وتسري +وتسع +وتسعد +وتسعمية +وتسعى +وتسعي +وتسقط +وتسكبه +وتسلب +وتسلط +وتسللت +وتسللها +وتسللوا +وتسليت +وتسليم +وتسليمًا +وتسمح +وتسمع +وتسمى +وتسهب +وتسهم +وتسهيل +وتسودّ +وتسويد +وتسويق +وتسويقية +وتسير +وتسيطر +وتسيير +وتشاء +وتشابكت +وتشارك +وتشايكوفسكي +وتشبيهاتك +وتشبُّع +وتشتمل +وتشتهر +وتشتهي +وتشجع +وتشجيع +وتشحن +وتشخيص +وتشدك +وتشرب +وتشردت +وتشرده +وتشردوا +وتشرع +وتشريد +وتشريع +وتشريف +وتشرّد +وتشرّده +وتشع +وتشعباتها +وتشعر +وتشعرك +وتشفّ +وتشققها +وتشقى +وتشكل +وتشكلاته +وتشكلت +وتشكيل +وتشكيلاته +وتشكّلاته +وتشمل +وتشنج +وتشهد +وتشويه +وتشويهها +وتشوّهات +وتشيد +وتشير +وتصادر +وتصادف +وتصانيف +وتصايحهم +وتصبح +وتصحبها +وتصحيح +وتصحيحه +وتصدت +وتصدر +وتصدير +وتصدّرها +وتصرفات +وتصريحات +وتصرّف +وتصطحبه +وتصطدم +وتصعد +وتصف +وتصفية +وتصفيته +وتصل +وتصلب +وتصلح +وتصميم +وتصنع +وتصنيع +وتصنيف +وتصنيفها +وتصنيفهم +وتصنُّع +وتصور +وتصورات +وتصوراتهم +وتصوم +وتصون +وتصويب +وتصويته +وتصوير +وتصويره +وتصويرها +وتصيب +وتصير +وتصيره +وتضاء +وتضاءل +وتضاريس +وتضاعف +وتضاعفت +وتضاف +وتضافر +وتضامن +وتضحك +وتضحياته +وتضخمت +وتضرعت +وتضطلع +وتضع +وتضعفها +وتضعه +وتضليل +وتضم +وتضمن +وتضميد +وتضمينها +وتضيء +وتضيف +وتطارده +وتطال +وتطالب +وتطالع +وتطبع +وتطبعها +وتطبق +وتطبيق +وتطبيقا +وتطبيقات +وتطبيقاته +وتطبيقاتها +وتطبيقية +وتطرب +وتطرح +وتطرحها +وتطرز +وتطرق +وتطرّق +وتطل +وتطلب +وتطلبني +وتطلع +وتطلعات +وتطلعاته +وتطلعاتهم +وتطلعه +وتطلق +وتطلّ +وتطلّع +وتطمع +وتطهير +وتطور +وتطورا +وتطورات +وتطوراً +وتطورت +وتطوره +وتطورها +وتطوع +وتطوعهم +وتطول +وتطوير +وتطويره +وتطويرها +وتطويعها +وتطوّرات +وتطوّراته +وتطوّره +وتطوَّرت +وتطوُّره +وتطيح +وتطير +وتطييب +وتظافر +وتظاهرات +وتظل +وتظلل +وتظليل +وتظلّ +وتظنين +وتظنينه +وتظهر +وتعابيره +وتعارضها +وتعارفنا +وتعاضد +وتعاطف +وتعاطي +وتعاظمت +وتعاقب +وتعال +وتعالى +وتعاليمه +وتعاليمهم +وتعامل +وتعاملا +وتعاملت +وتعاملنا +وتعامله +وتعاملهم +وتعاملوا +وتعانقها +وتعاني +وتعاون +وتعاونه +وتعايشت +وتعب +وتعبئتها +وتعبر +وتعبرني +وتعبوا +وتعبير +وتعبيرا +وتعبيرات +وتعبيره +وتعتبر +وتعتبرها +وتعترف +وتعتقد +وتعتمد +وتعتنقه +وتعثر +وتعجب +وتعجز +وتعد +وتعداد +وتعدد +وتعددت +وتعديل +وتعديلاته +وتعذر +وتعرض +وتعرضه +وتعرضها +وتعرضهم +وتعرضوا +وتعرف +وتعرفت +وتعريته +وتعريف +وتعريفات +وتعريفية +وتعزز +وتعزيز +وتعزيزها +وتعشق +وتعشقها +وتعصف +وتعطي +وتعطيل +وتعطيلها +وتعطينا +وتعطّرت +وتعظم +وتعقب +وتعقد +وتعقدت +وتعقّدت +وتعكس +وتعكف +وتعلق +وتعلقت +وتعلقنا +وتعلقي +وتعلم +وتعلمت +وتعلمن +وتعلمنا +وتعلموا +وتعلو +وتعلي +وتعليب +وتعليق +وتعليقًا +وتعليم +وتعليمهم +وتعلّقت +وتعمر +وتعمل +وتعمير +وتعميق +وتعميقها +وتعميم +وتعمّق +وتعنى +وتعني +وتعهداتهم +وتعود +وتعودنا +وتعول +وتعويض +وتعي +وتعيث +وتعيد +وتعيش +وتعيشه +وتعين +وتعيين +وتعيينهم +وتفاؤلها +وتفادي +وتفادياً +وتفاسير +وتفاصيل +وتفاعل +وتفاعلاً +وتفاقم +وتفاقمت +وتفاهة +وتفاهم +وتفاوتت +وتفتتح +وتفتح +وتفترض +وتفتك +وتفتيح +وتفتيق +وتفجر +وتفجير +وتفحصي +وتفرجت +وتفرح +وتفرخ +وتفرز +وتفرش +وتفرض +وتفرعاتها +وتفرعت +وتفرقة +وتفسير +وتفسيرها +وتفسيرًا +وتفشت +وتفشي +وتفصيلا +وتفصيلاته +وتفصيليًا +وتفضح +وتفضل +وتفضي +وتفعل +وتفعيل +وتفقده +وتفكر +وتفكير +وتفكيره +وتفكيرها +وتفكيرهم +وتفكيري +وتفكيك +وتفلح +وتفهم +وتفهمهم +وتفوق +وتفوقت +وتفوقه +وتفوّقها +وتفيد +وتفيدنا +وتقابل +وتقاتل +وتقادم +وتقارب +وتقاس +وتقاطيعي +وتقاعسهم +وتقاليد +وتقاليدنا +وتقاليده +وتقاليدها +وتقاليدهم +وتقبل +وتقبله +وتقبلها +وتقبيلاً +وتقبّله +وتقترب +وتقتصر +وتقتل +وتقدر +وتقدم +وتقدمت +وتقدمه +وتقدمها +وتقدير +وتقديره +وتقديري +وتقديرًا +وتقديس +وتقديم +وتقديمه +وتقديمها +وتقدَّم +وتقرأه +وتقرح +وتقرفصت +وتقريب +وتقريبا +وتقرير +وتقسيم +وتقسيماتهم +وتقسيمه +وتقشعر +وتقصه +وتقطر +وتقطعت +وتقع +وتقف +وتقل +وتقلبات +وتقلباته +وتقلبت +وتقلص +وتقلصت +وتقلل +وتقليص +وتقليل +وتقليم +وتقلّب +وتقلَّصت +وتقنيات +وتقنياته +وتقنياتها +وتقنية +وتقهقرها +وتقواه +وتقوقع +وتقول +وتقولين +وتقوم +وتقوها +وتقوى +وتقوية +وتقويته +وتقويتها +وتقويم +وتقىيم +وتقىيمها +وتقيؤهم +وتقية +وتقيد +وتقيم +وتقيه +وتقييم +وتكاتفنا +وتكاثرت +وتكاد +وتكافؤ +وتكافح +وتكاليف +وتكاليفها +وتكامل +وتكاملاً +وتكاملها +وتكايا +وتكبر +وتكتبين +وتكتمل +وتكتنزان +وتكثر +وتكثيف +وتكثيفها +وتكر +وتكرار +وتكرارا +وتكراراً +وتكرر +وتكررت +وتكرس +وتكرسها +وتكرير +وتكريسها +وتكريمها +وتكسبني +وتكسر +وتكسوها +وتكشف +وتكفينه +وتكفيه +وتكلفة +وتكلمن +وتكليف +وتكليفهم +وتكمل +وتكمن +وتكنولوجيا +وتكهن +وتكون +وتكوين +وتكوينه +وتكويني +وتلا +وتلاعب +وتلاعبوا +وتلافي +وتلافيف +وتلال +وتلامذته +وتلامذتهما +وتلاميذ +وتلاميذه +وتلاه +وتلاوات +وتلاوة +وتلاوتها +وتلبس +وتلبى +وتلبي +وتلبية +وتلتصق +وتلتقطها +وتلته +وتلتهم +وتلج +وتلح +وتلحين +وتلد +وتلزمك +وتلصق +وتلعب +وتلعبه +وتلعنه +وتلفت +وتلقائياً +وتلقائية +وتلقى +وتلقي +وتلقينهم +وتلقيها +وتلقّفها +وتلك +وتلمح +وتلمسها +وتلميذة +وتلوثها +وتلوح +وتلونها +وتلوينه +وتليفزيون +وتم +وتماثيل +وتماثيلها +وتمارس +وتمارين +وتماسكها +وتماما +وتماهى +وتمت +وتمتاز +وتمتد +وتمتص +وتمتعهم +وتمتلكه +وتمتين +وتمتّعت +وتمثل +وتمثلت +وتمثله +وتمثلها +وتمثيل +وتمثيلها +وتمثيلي +وتمثيلية +وتمثّلته +وتمجيد +وتمد +وتمددت +وتمديد +وتمر +وتمرة +وتمرح +وتمرست +وتمرين +وتمرّده +وتمزج +وتمزجها +وتمزيق +وتمس +وتمسكه +وتمشياً +وتمشيه +وتمضى +وتمعني +وتمكن +وتمكنا +وتمكنت +وتمكننا +وتمكنوا +وتمكين +وتمكينه +وتمكينهم +وتملأ +وتملك +وتمنح +وتمنحنا +وتمنحه +وتمنع +وتمنعني +وتمنعه +وتمنعها +وتمنى +وتمني +وتمنيت +وتمهيد +وتموت +وتموجات +وتمول +وتموله +وتمويل +وتمويهاته +وتميز +وتميزاً +وتميزت +وتميزه +وتميط +وتميل +وتميّزها +وتمّ +وتمَّ +وتناثرت +وتنادي +وتناديني +وتناسب +وتناسق +وتناسلاتها +وتنافسه +وتنافسهم +وتناقشنا +وتناقل +وتناقلته +وتناقلتها +وتناقلها +وتنال +وتنام +وتنامى +وتنامي +وتناول +وتناولت +وتناوله +وتنبع +وتنبيه +وتنتج +وتنتجها +وتنتزع +وتنتشر +وتنتظر +وتنتقل +وتنتقي +وتنتكس +وتنتهي +وتنجح +وتنحدر +وتنحـدر +وتنحي +وتنحّت +وتنخفض +وتندر +وتندرج +وتنزل +وتنسب +وتنسبه +وتنسجم +وتنسحب +وتنسلخ +وتنسم +وتنسى +وتنسيق +وتنسيقها +وتنسيقًا +وتنشأ +وتنشب +وتنشر +وتنشيط +وتنصب +وتنصرف +وتنصهر +وتنطبع +وتنطق +وتنطلق +وتنظر +وتنظفها +وتنظم +وتنظمها +وتنظيرا +وتنظيم +وتنظيماته +وتنفتح +وتنفجر +وتنفذ +وتنفذين +وتنفض +وتنفيذ +وتنفيذاً +وتنفيذها +وتنفّس +وتنقسم +وتنقص +وتنقصنا +وتنقل +وتنقيب +وتنقية +وتنمتيها +وتنمو +وتنمي +وتنمية +وتنميته +وتنميتها +وتنهب +وتنورات +وتنوع +وتنوعت +وتنوعها +وتنويع +وتنويعاتها +وتنوّعها +وتنوُّعاً +وتنوُّعه +وتهاجر +وتهافته +وتهامة +وتهانيهم +وتهتم +وتهجير +وتهدد +وتهدف +وتهديدات +وتهدّم +وتهذيب +وتهذّب +وتهرب +وتهرول +وتهريب +وتهريبها +وتهشيم +وتهضمها +وتهليلهم +وتهميش +وتهميشاً +وتهون +وتهويدها +وتهيأت +وتهيئة +وتهيئنا +وتهيب +وتوابع +وتوابل +وتواجده +وتواجه +وتواجهك +وتوارت +وتوارد +وتواريخ +وتوازنه +وتوازنها +وتوازنهم +وتواصلت +وتواصلها +وتواضع +وتواطأت +وتوافد +وتوافق +وتوالت +وتوالد +وتوالى +وتوالي +وتوبة +وتوتر +وتوثقت +وتوثيق +وتوثيقها +وتوجت +وتوجد +وتوجس +وتوجه +وتوجهاتها +وتوجهاتهم +وتوجهت +وتوجهه +وتوجهها +وتوجيه +وتوجيهات +وتوجيهاتها +وتوجيهاتهم +وتوجيههم +وتوحـيد +وتوحي +وتوحيد +وتوخّي +وتوديعه +وتورق +وتوزان +وتوزر +وتوزع +وتوزعه +وتوزيع +وتوزيعاتها +وتوزيعه +وتوزيعها +وتوسع +وتوسعاً +وتوسعته +وتوسل +وتوسيع +وتوسيعا +وتوسيعها +وتوصل +وتوصلت +وتوصلوا +وتوصيات +وتوصيلها +وتوضح +وتوضع +وتوضيب +وتوضيح +وتوضيحهما +وتوطدت +وتوطيد +وتوطين +وتوظيف +وتوظيفها +وتوعيتهم +وتوفر +وتوفير +وتوفيرها +وتوفيق +وتوفّز +وتوقع +وتوقعات +وتوقف +وتوقفوا +وتوقيته +وتولت +وتولد +وتولى +وتولي +وتوليد +وتوليف +وتونس +وتيار +وتيارات +وتيرامايتيكا +وتيرة +وتيسير +وتيقننا +وتين +وتَشكله +وتُبرز +وتُحمدون +وتُختصُّ +وتُعد +وتُعرف +وتُعْرض +وتُميِّز +وتُوّجت +وث +وثائق +وثائقي +وثائقياً +وثائقية +وثابة +وثار +وثاقبة +وثالث +وثالثة +وثالثها +وثانوي +وثاني +وثانيا +وثانياً +وثانية +وثانيها +وثانيهما +وثانيًا +وثبات +وثبة +وثبت +وثبتت +وثبوا +وثراء +وثرائه +وثرثرنا +وثروته +وثروتها +وثعبان +وثق +وثقافات +وثقافاتها +وثقافاتهم +وثقافة +وثقافتنا +وثقافته +وثقافتها +وثقافتي +وثقافي +وثقافيا +وثقافياً +وثقافية +وثقافيًا +وثقة +وثقل +وثقله +وثقوا +وثقى +وثلاث +وثلاثا +وثلاثة +وثلاثمئة +وثلاثمائة +وثلاثون +وثلاثين +وثلثه +وثلوج +وثمار +وثمانمائة +وثماني +وثمانية +وثمانين +وثمة +وثواره +وثوب +وثوبها +وثورة +وثورو +وثياب +وثيابها +وثيرة +وثيق +وثيقاً +وثيقة +وثيقًا +وجئت +وجاء +وجاءت +وجاءني +وجاءوا +وجائزة +وجائع +وجاحتنا +وجاد +وجادت +وجادوا +وجاذبية +وجاذبيتها +وجار +وجارت +وجازان +وجاست +وجاف +وجافة +وجاق +وجاكوزي +وجالسه +وجامايكا +وجامعات +وجامعة +وجامعتي +وجان +وجانب +وجاهزون +وجاوة +وجب +وجبات +وجباته +وجباتهم +وجبال +وجباله +وجبالها +وجبة +وجبران +وجبرت +وجبل +وجبنا +وجبهات +وجد +وجدا +وجدار +وجداره +وجدال +وجدان +وجدانا +وجدانه +وجداني +وجدانية +وجدة +وجدت +وجدتك +وجدتني +وجدته +وجدتها +وجدتهما +وجدتي +وجدتُ +وجدتُني +وجدد +وجدران +وجدل +وجدلوها +وجدنا +وجدناه +وجدناها +وجده +وجدها +وجدوا +وجدول +وجدوه +وجدوها +وجدي +وجدير +وجدّة +وجذب +وجذرية +وجذوره +وجذورها +وجذوري +وجرأة +وجرأته +وجراحيا +وجربة +وجرت +وجرح +وجرحت +وجرده +وجرفتنا +وجروح +وجرى +وجري +وجريئة +وجريجي +وجريمة +وجرّ +وجزء +وجزءاً +وجزاك +وجزر +وجزيرة +وجزّار +وجسارة +وجسد +وجسده +وجسدها +وجسدياً +وجسمه +وجسمي +وجسنا +وجشع +وجع +وجعل +وجعلت +وجعلته +وجعلك +وجعلناكم +وجعلني +وجعله +وجعلها +وجعلهم +وجعلوا +وجـرت +وجفاف +وجفت +وجفّ +وجل +وجلال +وجلالها +وجلب +وجلبة +وجلبوا +وجلد +وجلس +وجلسائه +وجلسة +وجلست +وجلنا +وجلهم +وجلي +وجليسات +وجليل +وجليّا +وجلَّ +وجماجم +وجماعات +وجماعة +وجماعية +وجمال +وجمالاً +وجماله +وجمالها +وجمالهم +وجماليا +وجماليّاتها +وجماهيريتها +وجمع +وجمعت +وجمعتني +وجمعيات +وجمعية +وجمل +وجمنازيوم +وجمهورية +وجمود +وجموع +وجميع +وجميعها +وجميل +وجميلا +وجميلة +وجمّد +وجمّل +وجناحاً +وجنبه +وجنة +وجنتها +وجندية +وجنرالاتهم +وجنس +وجنوب +وجنوباً +وجنوبه +وجنوبها +وجنوبًا +وجنوده +وجنودها +وجنى +وجني +وجنيف +وجنين +وجه +وجها +وجهات +وجهاد +وجهاده +وجهادها +وجهاز +وجهان +وجهاً +وجهة +وجهت +وجهته +وجهتها +وجهتهم +وجهدي +وجهرا +وجهك +وجهل +وجهه +وجهها +وجههِ +وجهود +وجهوده +وجهي +وجهية +وجهين +وجهينا +وجهيها +وجهَهُ +وجهِ +وجو +وجوائز +وجوابي +وجواتيمالا +وجوارح +وجوارحه +وجواريها +وجواز +وجواسيس +وجوامع +وجوانحه +وجوب +وجوتيريزناصيرا +وجوجان +وجود +وجودالوب +وجوداً +وجودة +وجودك +وجودنا +وجوده +وجودها +وجودهم +وجودي +وجودية +وجوديّ +وجوديًّا +وجورج +وجوزف +وجوسلين +وجوعى +وجولة +وجولييت +وجوم +وجومه +وجوه +وجوهراً +وجوهرية +وجوهنا +وجوهها +وجوههم +وجوههن +وجويدي +وجوِّ +وجيانا +وجيدة +وجيرانه +وجيرانها +وجيراني +وجيروم +وجيزة +وجيشه +وجيعتة +وجيل +وجيمس +وجيه +وجيوبه +وجيوشا +وجيولوجي +وجُعلت +وجّه +وجَّه +وحائط +وحائل +وحاجاته +وحاجاتهم +وحاجبان +وحاجة +وحاجتها +وحادة +وحادثة +وحاده +وحاراتها +وحارب +وحاربا +وحاربوه +وحارة +وحارته +وحارس +وحاز +وحاسبات +وحاسما +وحاشيته +وحاصر +وحاصرها +وحاضر +وحاضرة +وحاضرت +وحاضرنا +وحاضره +وحافزاً +وحافظ +وحافظت +وحاكم +وحاكمها +وحال +وحالات +وحالاتي +وحالة +وحالما +وحالي +وحاليا +وحالياً +وحاليين +وحامد +وحاملين +وحان +وحانة +وحاول +وحاولت +وحاولتا +وحاولوا +وحاوي +وحاويات +وحاوياتها +وحب +وحبب +وحببته +وحبه +وحبوب +وحبيبات +وحبيبته +وحبيبتي +وحبيبي +وحبيبًا +وحبيسة +وحبّ +وحتماً +وحتى +وحتي +وحثالة +وحثت +وحثّه +وحج +وحجاب +وحجاج +وحجارة +وحجازي +وحجب +وحجته +وحجز +وحجم +وحجوزات +وحجية +وحجَبَها +وحدائق +وحدات +وحداتها +وحداتٍ +وحداثة +وحداثتنا +وحداثتها +وحداثيا +وحدادي +وحدانية +وحدة +وحدةٌ +وحدته +وحدتها +وحدث +وحدثا +وحدثت +وحدثتنا +وحدثتني +وحدثته +وحدثنا +وحدد +وحددت +وحددوا +وحدق +وحدقت +وحدك +وحدنا +وحده +وحدها +وحدهم +وحدوث +وحدود +وحدويا +وحدي +وحديث +وحديثا +وحديثاً +وحديثه +وحديثها +وحديثًا +وحديقة +وحدّة +وحدّقت +وحذر +وحذرت +وحذفوها +وحذق +وحرارة +وحرارتها +وحراستها +وحران +وحرب +وحرة +وحرر +وحرسه +وحرص +وحرصا +وحرصاً +وحرصه +وحرصهم +وحرف +وحرفة +وحرفًا +وحرق +وحرقة +وحرقت +وحرقها +وحرك +وحركات +وحركاتها +وحركة +وحركتنا +وحركته +وحرمان +وحرمانه +وحرمانهم +وحرمة +وحرمتهم +وحروب +وحروبه +وحروبها +وحروف +وحروفها +وحروفًا +وحرية +وحريته +وحريتها +وحريصة +وحريٌّ +وحرّاس +وحرّان +وحزب +وحزمة +وحزن +وحزنت +وحزيناً +وحساء +وحساب +وحسابات +وحساباته +وحساسية +وحساسيتها +وحسب +وحسبان +وحسبك +وحسبنا +وحسبوها +وحسبي +وحسدت +وحسرته +وحسن +وحسياً +وحسين +وحش +وحشائش +وحشاشة +وحشاً +وحشة +وحشدًا +وحشره +وحشي +وحشيا +وحشية +وحشًا +وحصار +وحصان +وحصر +وحصل +وحصلت +وحصلوا +وحصول +وحصوله +وحصون +وحصَّل +وحض +وحضارات +وحضارة +وحضارتنا +وحضارته +وحضارتها +وحضارتهم +وحضارتي +وحضاري +وحضاريا +وحضارياً +وحضارية +وحضر +وحضرت +وحضره +وحضرها +وحضها +وحضور +وحضوره +وحضورها +وحضورهم +وحضوري +وحطم +وحطموا +وحطين +وحظ +وحظر +وحظه +وحـتي +وحـدة +وحـسب +وحف +وحفائر +وحفاوته +وحفر +وحفز +وحفزهم +وحفظ +وحفظاً +وحفظت +وحفظه +وحفظها +وحفل +وحفلات +وحفيد +وحفيدة +وحفيدته +وحفيف +وحق +وحقائب +وحقائق +وحقق +وحققت +وحققوا +وحقل +وحقله +وحقها +وحقوق +وحقوقه +وحقوقها +وحقولها +وحقيقة +وحقيقته +وحقيقتها +وحقيقيا +وحكاوي +وحكايا +وحكايات +وحكاية +وحكم +وحكما +وحكمت +وحكمته +وحكمهم +وحكموا +وحكومات +وحكومة +وحكومته +وحكى +وحكيم +وحل +وحلب +وحلبتها +وحلت +وحلفاءها +وحلفاؤها +وحلفائها +وحلقات +وحلقة +وحلقي +وحلوان +وحلواه +وحلوها +وحلويات +وحلى +وحليب +وحلَّقت +وحماة +وحماره +وحماسا +وحماسة +وحماقة +وحمامات +وحماه +وحماية +وحمايته +وحمايتها +وحمايتهم +وحمد +وحمراء +وحمص +وحمض +وحمقى +وحمل +وحملات +وحملاتهم +وحملاني +وحملة +وحملت +وحملته +وحملتها +وحمله +وحملها +وحملوا +وحملوه +وحموها +وحمي +وحميمية +وحميميتها +وحمّالة +وحمّى +وحنا +وحنان +وحنانا +وحناناً +وحنتوب +وحنين +وحواء +وحواجز +وحوادث +وحوار +وحواراتي +وحواريوه +وحواش +وحواف +وحوالى +وحوانيت +وحوران +وحورية +وحوش +وحول +وحولت +وحولتها +وحولهم +وحولوا +وحوَّلت +وحى +وحي +وحياء +وحياة +وحياته +وحياتها +وحياتهم +وحياتهما +وحياتي +وحياتيا +وحيانا +وحياً +وحية +وحيث +وحيثما +وحيد +وحيدا +وحيدات +وحيداً +وحيدة +وحيدر +وحيدها +وحيدين +وحيدًا +وحيل +وحين +وحينئذ +وحينذاك +وحينما +وحينها +وحيوانات +وحيواناتهم +وحيوانية +وحيوي +وحيوية +وحيويته +وحيّرني +وحُب +وحُبَيّب +وحُسْن +وخائف +وخائفا +وخارج +وخارجا +وخارجاً +وخارجه +وخارجها +وخارجي +وخارجياً +وخارجية +وخارطة +وخاص +وخاصة +وخاصتهم +وخاصية +وخاضوا +وخاطب +وخالد +وخالطه +وخالف +وخالية +وخاليًا +وخامات +وخاماته +وخامة +وخامس +وخامسها +وخان +وخانته +وخبر +وخبراء +وخبرات +وخبراتها +وخبراتهم +وخبرة +وخبرته +وخبرتهم +وخبرونا +وخبروها +وخبيثة +وختم +وختمت +وختمها +وخجلت +وخدم +وخدمات +وخدماتها +وخدمة +وخدمته +وخدمية +وخذ +وخذهم +وخر +وخرائط +وخراب +وخرافات +وخرج +وخرجت +وخرجنا +وخرماً +وخروج +وخروجاً +وخروجًا +وخروف +وخريجيه +وخريجيها +وخريطة +وخرّب +وخز +وخزانة +وخزينة +وخسارتنا +وخشب +وخشبة +وخشوع +وخشونة +وخشية +وخص +وخصائص +وخصائصه +وخصائصها +وخصبة +وخصص +وخصصت +وخصما +وخصوصا +وخصوصاً +وخصوصياتهم +وخصوصية +وخصوصيته +وخصوصيتها +وخصوصيتهم +وخصوصًا +وخصومات +وخصومه +وخصّت +وخضت +وخضع +وخضعت +وخط +وخطب +وخطر +وخطراً +وخطرة +وخطرت +وخطط +وخططت +وخططه +وخططها +وخطف +وخطفت +وخطوبه +وخطورة +وخطورته +وخطوط +وخطوطها +وخطى +وخطير +وخطيرة +وخفة +وخفت +وخفض +وخفضت +وخفقان +وخفي +وخلات +وخلاخيل +وخلاصات +وخلاصة +وخلافاتها +وخلافه +وخلال +وخلالا +وخلايا +وخلص +وخلعة +وخلف +وخلفت +وخلفنا +وخلفيات +وخلفية +وخلفيته +وخلق +وخلني +وخلوات +وخلود +وخلوده +وخلوه +وخليته +وخليج +وخليفة +وخليق +وخليل +وخلّفوا +وخمس +وخمسا +وخمسة +وخمسمائة +وخمسون +وخمسين +وخمّرته +وخنت +وخواب +وخواص +وخواطر +وخوان +وخور +وخوسيه +وخوف +وخوفا +وخوفاً +وخوفًا +وخيار +وخياطي +وخيال +وخيام +وخيبة +وخيبتي +وخير +وخيرات +وخيره +وخيرها +وخيط +وخيطا +وخيمة +وخيول +ود +ودأب +ودأبت +ودائما +ودائماً +ودائمًا +ودابوه +وداخل +وداخله +وداخلها +وداخلية +ودار +ودارت +وداع +وداعا +وداعة +وداعه +وداعيا +ودافئا +ودالي +وداوادة +ودايفيد +ودب +ودبلوم +ودبلوماسيون +ودبي +ودبّجت +ودجاج +ودجلة +ودحضه +ودخان +ودخل +ودخلا +ودخلت +ودخلنا +ودخلوا +ودخول +ودخوله +ودخولها +ودخيلة +وددت +ودراسات +ودراساته +ودراسة +ودراستها +ودراية +ودرايـة +ودربت +ودرة +ودرجات +ودرجة +ودرجتُ +ودرجه +ودرس +ودرساً +ودرست +ودرسه +ودرسوا +ودرنيد +ودروس +ودروع +ودريّة +ودرًس +ودرّبت +ودرّس +ودسوقي +ودع +ودعا +ودعاء +ودعائهم +ودعاة +ودعارة +ودعاه +ودعاوى +ودعت +ودعته +ودعم +ودعمه +ودعنا +ودعها +ودعوا +ودعوة +ودعوته +ودعونا +ودعوناه +ودعوني +ودعوه +ودعيت +ودفء +ودفئها +ودفاتر +ودفاعًا +ودفتر +ودفع +ودفعة +ودفعت +ودفعته +ودفعتها +ودفعنا +ودفعني +ودفعه +ودفعها +ودفعهم +ودفقة +ودفنت +ودقائقه +ودقة +ودقيق +ودقيقًا +ودقّة +ودكا +ودكان +ودكتاتورية +ودكتوراة +ودكتوراه +ودل +ودلالاته +ودلالة +ودلهي +ودليل +ودلّ +ودماء +ودمائنا +ودماثة +ودماثته +ودمار +ودمجها +ودمشق +ودمعة +ودمنة +ودموع +ودمى +ودنو +ودنيا +ودنياهم +ودنيوية +ودهاءً +ودهاليز +ودهشة +ودهشتي +ودهماء +ودوائر +ودواخلهم +ودوار +ودواعيها +ودوافع +ودوافعه +ودواوين +ودودًا +ودور +ودورات +ودورة +ودورك +ودوره +ودورها +ودوري +ودوزنة +ودول +ودولة +ودوله +ودولياً +ودولية +ودون +ودونما +ودوّنوها +ودوَّى +ودي +وديان +وديانات +وديانتهم +ودير +وديع +وديعة +وديكارت +وديكور +وديملر +ودين +ودينا +وديناً +وديني +ودينية +ودينيًّا +وديودورس +ودُرَّة +ودُعي +ودُعيتُ +ودّ +ودّع +ودّها +ودّهم +ودَّعت +وذئب +وذات +وذاته +وذاتهم +وذاع +وذاعت +وذاك +وذاكرات +وذاكرته +وذاكرتي +وذبابة +وذبح +وذبحوهم +وذبذبات +وذبول +وذراعيها +وذروة +وذرّ +وذقنه +وذكاءهم +وذكر +وذكرت +وذكرتها +وذكره +وذكرهم +وذكروا +وذكرى +وذكريات +وذكي +وذلة +وذلك +وذهابا +وذهاباً +وذهابه +وذهب +وذهبا +وذهبت +وذهبوا +وذهل +وذهنا +وذهنياً +وذهنية +وذو +وذوبان +وذوبانها +وذوق +وذوقه +وذوي +وذويكم +وذوينا +وذويه +وذويهم +وذي +وذيلها +ورءوس +ورءوسهم +ورآها +ورأت +ورأته +ورأس +ورأسه +ورأوا +ورأوه +ورأى +ورأي +ورأيت +ورأينا +ورأيها +ورأيي +ورؤساء +ورؤى +ورؤي +ورؤيا +ورؤية +ورؤيته +ورؤيتها +ورئاسة +ورئاستها +ورئيس +ورئيساً +ورئيسة +ورئيسه +ورئيسًا +وراء +وراءنا +وراءه +وراءها +وراءهم +وراءهما +وراءي +ورائحة +ورائد +ورائدا +ورائداً +ورائعة +ورائك +ورائه +ورائها +ورائي +ورابطة +ورابطته +ورابع +ورابعة +ورابعها +وراثة +وراثي +وراثيا +وراثياً +وراثية +وراثيٌّ +وراجت +وراجيف +وراح +وراحة +وراحت +وراسب +وراسل +وراعه +ورافداً +ورافض +ورافقوني +وراق +وراقب +وراقصون +وراكب +ورام +ورب +ورباب +ورباط +ورباطة +ورباعا +وربت +وربط +وربطها +وربطهم +وربطوا +وربع +وربما +وربنا +وربه +وربيع +وربيعاً +وربيعة +وربيكا +ورث +ورثائه +ورثاه +ورثت +ورثته +ورثنا +ورثها +ورثوها +ورجاؤهم +ورجائهم +ورجاحة +ورجال +ورجالا +ورجالاً +ورجاله +ورجالها +ورجاه +ورجتني +ورجع +ورجعت +ورجعوا +ورجل +ورجلاها +ورجليه +ورحابة +ورحب +ورحت +ورحـلات +ورحلات +ورحلاته +ورحلة +ورحلت +ورحلته +ورحلوا +ورحم +ورحمة +ورحمتهم +ورحمك +ورخاء +ورخاءها +ورخص +ورخيصة +ورد +وردا +ورداً +وردة +وردت +وردد +ورددت +وردزورث +وردع +وردن +وردي +وردية +وردّا +وردّه +وردّي +ورزازات +ورزقت +ورسائل +ورسالته +ورسالتها +ورسام +ورساماً +ورسب +ورسله +ورسم +ورسمت +ورسمنا +ورسمها +ورسموا +ورسواً +ورسوله +ورسوم +ورش +ورشا +ورشاقته +ورشاوى +ورشة +ورشح +ورشحت +ورشفة +ورشيد +ورشَّاش +ورصاصة +ورصد +ورصها +ورصيده +ورصيفاتها +ورضاً +ورضوي +ورضيت +ورضيعها +ورطبة +ورطة +ورطوبة +ورطوبته +ورع +ورعاية +ورعايته +ورعايتها +ورعايتهم +ورعاً +ورعبي +ورعدة +ورعونته +ورفاق +ورفاهية +ورفت +ورفض +ورفضت +ورفضها +ورفضوا +ورفضي +ورفع +ورفعا +ورفعة +ورفعت +ورفعتها +ورفعه +ورفعها +ورفق +ورفقاء +ورفقائه +ورفيف +ورفيق +ورفيقة +ورفيقي +ورق +ورقابتها +ورقاً +ورقة +ورقتان +ورقتك +ورقته +ورقتها +ورقتي +ورقص +ورقم +ورقما +ورقمها +ورقمي +ورقي +ورقيت +ورقيقًا +ورقيه +ورقيهم +ورقّم +ورك +وركام +وركب +وركز +وركضت +وركضنا +وركضي +وركوب +وركود +ورليانز +ورماد +ورمالها +ورمبيك +ورمته +ورمتهما +ورمز +ورمزا +ورمزي +ورمضاء +ورمضان +ورمقتهم +ورموز +ورموزها +ورمى +ورمية +ورهافتها +ورهيبا +وروائح +وروائحه +وروائية +ورواة +ورواد +وروادا +وروادع +ورواده +وروادها +ورواسب +وروافد +وروافده +ورواها +وروايات +ورواياتي +ورواية +وروايته +وروج +وروجر +وروح +وروحانية +وروحه +وروحها +وروحي +وروحية +ورود +وروسيا +وروضة +وروعة +وروعتها +وروعي +وروما +وروماني +ورومانية +وروميو +ورونقا +ورونقه +ورونقها +وروى +ورويت +وريادتها +ورياض +ورياضة +وريث +وريثاً +وريدية +وريزا +وريفل +وريقات +وريقة +وريم +وريموند +ورُزق +ورُزِقَ +وزائريه +وزائريها +وزاد +وزادت +وزادها +وزار +وزارات +وزارة +وزارته +وزارتهم +وزارتي +وزارع +وزاره +وزاروب +وزالت +وزامل +وزاول +وزبيدة +وزج +وزجاجات +وزجاجته +وزجرته +وزجره +وزجّ +وزحزحة +وزحمة +وزخارف +وزخارفه +وزخرفة +وزخم +وزخمها +وزراء +وزرائه +وزراعتها +وزراعياً +وزراعيين +وزرزي +وزرع +وزرعت +وزرعنا +وزرقاء +وزرقة +وزركشته +وزرنا +وزع +وزعت +وزعم +وزعماء +وزعمائه +وزعمائها +وزعيق +وزعيمه +وزقاق +وزكاة +وزكريا +وزكى +وزكي +وزكّاني +وزلفى +وزليطن +وزمرها +وزملاؤه +وزملائه +وزملائي +وزمن +وزمنيًا +وزميلاه +وزميلتي +وزميلي +وزن +وزناً +وزنه +وزنها +وزنوجا +وزني +وزنِها +وزهادة +وزهد +وزهرة +وزهيد +وزهير +وزهّده +وزواجها +وزوار +وزوارقها +وزواره +وزوالها +وزوايا +وزوجاته +وزوجة +وزوجته +وزوجه +وزوجها +وزوجي +وزودت +وزوّدت +وزوّر +وزيادة +وزيارة +وزير +وزيرا +وزيراً +وزيرة +وزيرستان +وزيره +وزيرًا +وزيرَه +وزيفا +وزيمان +وزيمبابوي +وزين +وزينها +وزينوا +وزيني +وزّعت +وسأبدأ +وسأبقى +وسأتفهم +وسأحاول +وسأخبرك +وسأختم +وسأخص +وسأذكر +وسأذهب +وسأراقب +وسأريك +وسأستمتع +وسأعطي +وسأعلمك +وسأعود +وسأل +وسألت +وسألته +وسألتهم +وسألنا +وسأله +وسألها +وسأمضي +وسأنشره +وسأُنصت +وسؤال +وسؤاله +وسائح +وسائد +وسائر +وسائط +وسائق +وسائقها +وسائل +وسائلنا +وسابقتها +وسابقه +وسابك +وساحات +وساحرة +وساحل +وساخرة +وساد +وسادة +وسادته +وسادتي +وسار +وسارا +وسارت +وسارس +وسارع +وساطة +وساطته +وساعات +وساعة +وساعتها +وساعد +وساعدت +وساعدني +وساعده +وساعدها +وسافر +وسافرت +وساقه +وساكنتُ +وساكنوها +وساكني +وسال +وسالماً +وسام +وساما +وسامرّاء +وسامسونج +وساموا +وسامي +وسان +وسانتا +وسانتاماريا +وساندت +وسانده +وساهم +وساهمت +وساهموا +وساوره +وسبب +وسببها +وسببًا +وسبع +وسبعا +وسبعة +وسبعين +وسبك +وسبل +وسبيلا +وست +وستأتي +وستؤتي +وستبدأ +وستبقى +وستة +وستتضمن +وستتم +وستتوقف +وستدفع +وسترابو +وسترى +وستسمح +وستصفى +وستضم +وستطلق +وستظل +وستعاني +وستعكف +وستعيش +وستفرض +وستقام +وستقدم +وستقول +وستقوم +وستكون +وستمائة +وستمتدُ +وستمنح +وستنجهاوس +وستون +وستين +وستينيات +وسجادها +وسجداً +وسجل +وسجلت +وسجلنا +وسجلناها +وسجن +وسجني +وسجون +وسجونها +وسجيتها +وسحب +وسحبناه +وسحبها +وسحر +وسحره +وسحق +وسحنتي +وسخانات +وسخة +وسخر +وسخرها +وسخريته +وسخونة +وسخّر +وسد +وسداد +وسدنة +وسر +وسراج +وسرادق +وسرادقات +وسرح +وسرطان +وسرطانات +وسرعان +وسرعة +وسرقا +وسرقاتهم +وسرقة +وسرقت +وسروج +وسريان +وسريع +وسط +وسطا +وسطح +وسطحا +وسطحه +وسطه +وسطها +وسطوعها +وسطي +وسطيا +وسع +وسعاد +وسعادة +وسعادةً +وسعادتهم +وسعة +وسعت +وسعتها +وسعد +وسعدت +وسعدنا +وسعدي +وسعر +وسعف +وسعها +وسعهم +وسعهما +وسعى +وسعي +وسعيا +وسعيد +وسعيدة +وسعينا +وسعيه +وسعيها +وسعيهم +وسعيهما +وسـكون +وسـلِّمت +وسفارات +وسفاري +وسفر +وسفرا +وسفراء +وسفره +وسفير +وسفيره +وسقط +وسقطت +وسقف +وسقفها +وسقوط +وسقى +وسكاكين +وسكان +وسكانها +وسكب +وسكر +وسكريات +وسكنت +وسكنتها +وسكنها +وسكون +وسكينة +وسلاحهم +وسلاحي +وسلاسة +وسلاسل +وسلالات +وسلام +وسلاماً +وسلامة +وسلاّلة +وسلب +وسلبياته +وسلبية +وسلس +وسلسلة +وسلسلتا +وسلط +وسلطات +وسلطة +وسلطتها +وسلعة +وسلف +وسلفن +وسلم +وسلمان +وسلمه +وسلمى +وسلوكا +وسلوكك +وسلوكها +وسلوكهم +وسلوكيات +وسلوكياتهم +وسلوكية +وسلوى +وسليط +وسليما +وسليمان +وسليماً +وسليمي +وسلّمني +وسلِّم +وسماء +وسمات +وسماته +وسماتها +وسماحة +وسماد +وسماعه +وسماكة +وسماه +وسماها +وسمة +وسمت +وسمح +وسمرقند +وسمع +وسمعت +وسمعته +وسمعوا +وسمكة +وسمكها +وسممت +وسمي +وسمية +وسميت +وسميته +وسنة +وسنتريس +وسنتناول +وسنتين +وسنجار +وسنجد +وسنجعل +وسنحاول +وسنحظى +وسنركز +وسنعرض +وسنفتح +وسنكون +وسنوات +وسنين +وسهل +وسهلا +وسهلوا +وسهول +وسهولة +وسهومه +وسوء +وسواء +وسوابق +وسواتر +وسواحل +وسوار +وسواكن +وسواه +وسواها +وسواهم +وسواهما +وسواهن +وسواي +وسودنة +وسوريا +وسورية +وسورينام +وسوزان +وسوطه +وسوف +وسوق +وسوى +وسويسرا +وسيأتي +وسياحة +وسياحية +وسيادة +وسيادتها +وسيارات +وسياراتنا +وسياراتهم +وسيارة +وسياسات +وسياسة +وسياسته +وسياسي +وسياسيا +وسياسياً +وسياسية +وسياسيًّا +وسياط +وسياقها +وسيبقى +وسيتادل +وسيتبع +وسيتطلب +وسيتعرض +وسيتم +وسيتواجد +وسيجتمع +وسيجما +وسيحافظ +وسيحقق +وسيحوت +وسيد +وسيدته +وسيدي +وسيرة +وسيرتفع +وسيركع +وسيستفيد +وسيسحقوننا +وسيسهم +وسيشعر +وسيشكل +وسيصدح +وسيضيف +وسيط +وسيطا +وسيطر +وسيطرة +وسيطرت +وسيطروا +وسيظل +وسيعاد +وسيعرف +وسيعود +وسيق +وسيقانها +وسيقدم +وسيكتشف +وسيكولوجية +وسيكون +وسيلان +وسيلة +وسيلته +وسيلتهم +وسيلتي +وسيلعب +وسيله +وسيم +وسيماً +وسيمون +وسينا +وسيناريو +وسينتج +وسينمائية +وسيور +وسيول +وسيُقدّر +وسُجلت +وسُجن +وسُرقت +وسُكنى +وسّع +وشأنك +وشأننا +وشأنه +وشؤون +وشؤونها +وشئ +وشئت +وشئون +وشاء +وشائج +وشاب +وشاح +وشاخ +وشاخصة +وشاربي +وشارح +وشارحا +وشارع +وشارك +وشاركت +وشاركتهما +وشاركها +وشاشات +وشاشتي +وشاطئ +وشاطئا +وشاطئها +وشاع +وشاعت +وشاعر +وشاعرا +وشاعرية +وشاقة +وشاكر +وشامبليون +وشاملا +وشاهد +وشاهدا +وشاهدته +وشاهدنا +وشاهدها +وشاي +وشايات +وشباب +وشبابنا +وشبابها +وشبابي +وشبان +وشباناً +وشبك +وشبكات +وشبكة +وشبه +وشتائم +وشتاتنا +وشتبي +وشتلات +وشجاعة +وشجاعته +وشجاعتها +وشجر +وشجع +وشجعني +وشجعه +وشجيرات +وشحات +وشحذ +وشخصه +وشخصيات +وشخصياته +وشخصية +وشخصيتي +وشخوص +وشد +وشدة +وشدت +وشديد +وشديدة +وشدَّ +وشذاك +وشذوذ +وشراء +وشرائح +وشرائحها +وشرائحهم +وشرائط +وشراب +وشراع +وشراهة +وشرب +وشربا +وشربهم +وشرح +وشرحه +وشرط +وشرعا +وشرعت +وشرعته +وشرعنا +وشرعية +وشرف +وشرفا +وشرفة +وشرفه +وشرفها +وشرق +وشرقاً +وشرقها +وشرقي +وشرقية +وشركاء +وشركات +وشركاتها +وشركاه +وشركة +وشرم +وشره +وشرها +وشروح +وشروحاتها +وشروحها +وشروطها +وشريان +وشريحة +وشرير +وشريط +وشريعة +وشرّها +وشطحات +وشطّوا +وشظايا +وشعائر +وشعار +وشعاراتية +وشعارنا +وشعاع +وشعب +وشعبان +وشعبه +وشعبي +وشعبية +وشعر +وشعراء +وشعرت +وشعرنا +وشعره +وشعرها +وشعرهم +وشعروا +وشعري +وشعوبها +وشعور +وشعورها +وشفافية +وشفافيته +وشفاهنا +وشفتاه +وشفتيه +وشفتيها +وشفراتها +وشفروليت +وشفقته +وشفي +وشفيت +وشفيق +وشفّافاً +وشفّها +وشق +وشقته +وشقيقاه +وشقيقتها +وشقيقها +وشقيقي +وشك +وشكرا +وشكراً +وشكرت +وشكرته +وشكل +وشكلا +وشكلت +وشكله +وشكلها +وشكه +وشكواه +وشكوكو +وشكّك +وشلاتين +وشلبي +وشلٌ +وشمال +وشمالاً +وشماله +وشماً +وشمعة +وشمل +وشملت +وشممنا +وشمول +وشنقه +وشنّوا +وشهاب +وشهادات +وشهادة +وشهد +وشهدت +وشهرة +وشهرته +وشهور +وشهيد +وشهيدها +وشوارب +وشوارع +وشوارعها +وشواطئ +وشوال +وشواهد +وشوق +وشوقي +وشوكها +وشوهها +وشى +وشيء +وشيئا +وشيئاً +وشيجة +وشيخ +وشيراتون +وشيع +وشيعية +وشيكا +وشيوخ +وشيّدوا +وشَبَّت +وشُتِّت +وصابون +وصاح +وصاحب +وصاحباه +وصاحبنا +وصاحبيه +وصاحت +وصادرت +وصادف +وصادقة +وصادقت +وصادقين +وصار +وصارت +وصارحيني +وصاروا +وصافحه +وصافياً +وصالة +وصالحة +وصالون +وصامتة +وصايا +وصاية +وصايتها +وصايتهم +وصب +وصبا +وصباح +وصباه +وصباي +وصبر +وصبرنا +وصبره +وصبري +وصحار +وصحارى +وصحاريها +وصحافياً +وصحبته +وصحة +وصحراء +وصحـاريها +وصحفي +وصحفيا +وصحوات +وصحوه +وصحية +وصحيح +وصحيفة +وصخرة +وصداقة +وصدام +وصدح +وصددته +وصدر +وصدرت +وصدره +وصدرَتْ +وصدق +وصدقت +وصدقوني +وصدقي +وصدى +وصديقه +وصديقي +وصراحة +وصراعات +وصراعاتنا +وصراعاته +وصراعاتها +وصراعاتهم +وصراعهما +وصرت +وصرتما +وصرح +وصرخ +وصرخة +وصرخت +وصرخوا +وصرف +وصرفها +وصرنا +وصعب +وصعباً +وصعد +وصعوبة +وصعود +وصف +وصفا +وصفاقس +وصفاً +وصفة +وصفت +وصفتنني +وصفته +وصفتها +وصفحاته +وصفحة +وصفعه +وصفقاتها +وصفه +وصفها +وصفهم +وصفوة +وصفوه +وصفية +وصفيح +وصفًا +وصفٌ +وصقلها +وصك +وصل +وصلا +وصلابة +وصلات +وصلاح +وصلاحها +وصلالة +وصلب +وصلة +وصلت +وصلتك +وصلتنا +وصلتني +وصلته +وصلتها +وصلحه +وصلن +وصلنا +وصله +وصلها +وصلوا +وصلواتهم +وصلوها +وصلى +وصلي +وصمت +وصمتت +وصمد +وصممت +وصناديق +وصناعة +وصناعتها +وصناعي +وصناعية +وصندوق +وصنع +وصنعت +وصنعوا +وصنف +وصنيع +وصنّف +وصهرها +وصوب +وصوت +وصوته +وصوتها +وصوتي +وصور +وصورة +وصورت +وصوره +وصورها +وصورًا +وصول +وصولا +وصولاً +وصولنا +وصوله +وصولها +وصولهم +وصولي +وصوم +وصون +وصوناً +وصونها +وصياح +وصياحه +وصيام +وصيانة +وصيانته +وصيانتها +وصية +وصيته +وصيد +وصيدا +وصيدليات +وصيفا +وصيفتي +وصينية +وصُوّر +وضابط +وضاح +وضارة +وضاع +وضاعة +وضاعت +وضاعف +وضاقت +وضباب +وضباط +وضبط +وضبطه +وضجر +وضجيج +وضجيجا +وضجيجها +وضحاها +وضحايا +وضحك +وضحكات +وضحكاتهم +وضحى +وضحيته +وضحيتها +وضخ +وضخامة +وضخها +وضد +وضرب +وضربات +وضربه +وضربها +وضرع +وضرورة +وضروري +وضرورية +وضروريًّا +وضع +وضعا +وضعاً +وضعة +وضعت +وضعتني +وضعته +وضعتها +وضعف +وضعفت +وضعنا +وضعناها +وضعني +وضعه +وضعها +وضعهما +وضعوا +وضعوه +وضعي +وضعية +وضعيفة +وضم +وضمان +وضمت +وضمن +وضمنتها +وضمني +وضمها +وضمّوه +وضوء +وضوابط +وضواحيها +وضوح +وضوحا +وضوحاً +وضوحها +وضوحًا +وضياء +وضياع +وضياعنا +وضيع +وضيق +وضيوفه +وضيوفها +وضّحته +وضّحناه +وطءِ +وطأة +وطأت +وطئت +وطائفة +وطائفية +وطاب +وطابعه +وطابور +وطاجكستان +وطار +وطارئة +وطارت +وطازج +وطاقاته +وطاقاتها +وطاقة +وطالب +وطالباته +وطالبة +وطالبت +وطالبوا +وطالت +وطالعتني +وطالما +وطاهراً +وطاولات +وطاووس +وطب +وطبائعها +وطباع +وطبت +وطبعت +وطبعته +وطبعها +وطبعهما +وطبق +وطبقا +وطبقات +وطبقاً +وطبقة +وطبقت +وطبقنا +وطبقناها +وطبيب +وطبيعة +وطبيعتها +وطبيعي +وطبيعية +وطبَّق +وطحن +وطرأت +وطرائق +وطرائقه +وطرابلس +وطرافتهم +وطرت +وطرح +وطرحت +وطرحـها +وطرحها +وطرد +وطردوا +وطرفاية +وطرق +وطرقها +وطرميسين +وطروحات +وطروحك +وطريق +وطريقة +وطريقته +وطريقتهم +وطرْق +وطشقند +وطعام +وطعامها +وطعم +وطعمه +وطعمها +وطفلة +وطفيليات +وطقطقات +وطقوس +وطلائه +وطلاب +وطلابه +وطلابها +وطلب +وطلباتهم +وطلبت +وطلبنا +وطلبوا +وطلخا +وطلع +وطليت +وطليطلة +وطمأنني +وطمأنينة +وطمح +وطمس +وطمست +وطموحاته +وطموحاتهم +وطموحة +وطموحي +وطن +وطنا +وطناً +وطنطا +وطنك +وطنكم +وطننا +وطنه +وطنها +وطنهم +وطنى +وطني +وطنية +وطنٍ +وطه +وطهران +وطوائف +وطوال +وطوب +وطوبة +وطور +وطورها +وطوكيو +وطول +وطوله +وطويت +وطويلة +وطوّعت +وطيارات +وطيب +وطيبة +وطيد +وطيدة +وطيف +وطيلة +وطيوب +وطيور +وطيوراً +وطِيب +وظائف +وظائفهم +وظائفي +وظروف +وظروفه +وظل +وظلا +وظلال +وظلالها +وظلام +وظلت +وظللت +وظلم +وظلما +وظلمه +وظن +وظنت +وظننت +وظنوا +وظهر +وظهراً +وظهرت +وظهرها +وظهري +وظهور +وظواهرها +وظيفة +وظيفته +وظيفتها +وظيفتهم +وظيفي +وظيفياً +وظيفية +وظَّف +وعاء +وعائلاتهم +وعائلة +وعائلته +وعائلتي +وعابثا +وعابرة +وعاد +وعادات +وعاداتنا +وعاداته +وعاداتها +وعادة +وعادت +وعادل +وعادوا +وعارضا +وعارفي +وعازف +وعاش +وعاشت +وعاشقات +وعاشوا +وعاصرته +وعاطفية +وعافية +وعالج +وعالم +وعالمنا +وعالمه +وعالمها +وعالمياً +وعالمية +وعالميته +وعالمين +وعالية +وعام +وعامل +وعاملا +وعامًا +وعانق +وعانى +وعاينت +وعبء +وعبادة +وعباده +وعبارات +وعباراته +وعبارة +وعباس +وعباسيين +وعباسيّه +وعبثا +وعبثاً +وعبثاِ +وعبثت +وعبد +وعبدالباري +وعبدالجبار +وعبدالحليم +وعبدالحميد +وعبدالخالق +وعبدالرحمن +وعبدالرشيد +وعبدالعزيز +وعبدالعظيم +وعبدالقادر +وعبدالكريم +وعبدالله +وعبدالوهاب +وعبر +وعبرت +وعبقريته +وعبوات +وعبود +وعبّأ +وعبّد +وعبّرت +وعت +وعثر +وعثمان +وعثمانيين +وعجائب +وعجز +وعجزها +وعجم +وعجمهم +وعجيب +وعد +وعدا +وعداً +وعدة +وعدت +وعدتُ +وعدد +وعددها +وعددهم +وعدساني +وعدل +وعدله +وعدم +وعدمه +وعدن +وعدنا +وعدنان +وعدني +وعده +وعدها +وعدو +وعدوا +وعدوانية +وعدوٍ +وعديدة +وعديمة +وعدينا +وعدَّل +وعدُّوا +وعذاب +وعذاباته +وعذاباتهم +وعذابه +وعذابهم +وعذوبته +وعراقة +وعراك +وعرايا +وعرب +وعربدة +وعربي +وعربية +وعربيته +وعربيًّا +وعرة +وعرس +وعرش +وعرض +وعرضت +وعرضتها +وعرضه +وعرضها +وعرضهما +وعرضوها +وعرضًا +وعرف +وعرفات +وعرفانيّ +وعرفت +وعرفتهم +وعرفنا +وعرفني +وعرفه +وعرفها +وعرفوا +وعرق +وعرقلت +وعرقه +وعروبة +وعروبته +وعروبتي +وعروض +وعروضا +وعريق +وعرّجت +وعزت +وعزف +وعزلته +وعزلها +وعزم +وعزمت +وعزمه +وعزيز +وعزيمة +وعسل +وعسى +وعشاء +وعشاق +وعشتروت +وعشر +وعشرة +وعشرون +وعشرين +وعششت +وعشق +وعشقته +وعشقها +وعشياً +وعشيقها +وعصابته +وعصافير +وعصراً +وعصري +وعصرية +وعصمة +وعصوره +وعصير +وعضو +وعضوا +وعضوية +وعضويتها +وعضوًا +وعطاء +وعطاءاته +وعطار +وعطالة +وعطرها +وعطلة +وعطلوا +وعطّلوا +وعظام +وعظمة +وعظمك +وعظه +وعظيم +وعفا +وعفاف +وعفوي +وعفيف +وعقاب +وعقارات +وعقاقير +وعقب +وعقبات +وعقد +وعقدت +وعقل +وعقلا +وعقلاني +وعقلي +وعقلية +وعقليّ +وعقود +وعقول +وعقولنا +وعقيدة +وعقيدته +وعقيدتهم +وعقيل +وعكا +وعكاشة +وعكة +وعكس +وعكف +وعلا +وعلائقه +وعلاج +وعلاقات +وعلاقاتهما +وعلاقة +وعلاقته +وعلاقتها +وعلاقتهما +وعلال +وعلامات +وعلامة +وعلامتيه +وعلاوة +وعلب +وعلت +وعلته +وعلق +وعلقت +وعلقتها +وعلقتهما +وعللت +وعلم +وعلما +وعلماء +وعلمائنا +وعلمانيين +وعلماً +وعلمت +وعلمني +وعلمه +وعلمها +وعلمي +وعلميا +وعلمية +وعلميًا +وعلو +وعلوم +وعلوماً +وعلومه +وعلى +وعلي +وعليك +وعلينا +وعليه +وعليها +وعليهما +وعليّ +وعلّقه +وعلّم +وعما +وعمادة +وعمال +وعمد +وعمدة +وعمدت +وعمر +وعمرانية +وعمرة +وعمره +وعمرها +وعمري +وعمق +وعمقاً +وعمقه +وعمقها +وعمل +وعملائه +وعملائها +وعملت +وعملهم +وعملوا +وعملي +وعمليا +وعمليات +وعملية +وعموديته +وعموم +وعموماً +وعمي +وعميدة +وعميق +وعميقا +وعميقة +وعمّا +وعمّر +وعمَّت +وعن +وعناء +وعناصر +وعناصري +وعناية +وعند +وعندئذ +وعندما +وعندنا +وعندها +وعندهم +وعندي +وعنفا +وعنفوانهم +وعنهم +وعنوان +وعنوانه +وعنوانها +وعهدنا +وعوائدهم +وعوارض +وعواقبه +وعوالم +وعوامل +وعود +وعودا +وعودة +وعودته +وعودتهم +وعودتي +وعورة +وعورته +وعولمته +وعومل +وعويل +وعى +وعي +وعيا +وعياً +وعيت +وعيد +وعيدان +وعيشه +وعين +وعينا +وعيناك +وعيناه +وعينت +وعينه +وعينوا +وعينين +وعينيه +وعيه +وعيها +وعيهم +وعيون +وعيوننا +وعيونها +وعيونهم +وعيي +وعيًا +وعَبْر +وعُتق +وعُرضت +وعُرْسه +وعُهد +وعُيِّن +وف +وفؤاد +وفئة +وفاء +وفائدة +وفائق +وفائها +وفاة +وفاتته +وفاتـــه +وفاته +وفاتها +وفاتورة +وفاجأ +وفادتنا +وفادته +وفار +وفارس +وفارسية +وفارق +وفاروق +وفاز +وفازت +وفاطمة +وفاطميين +وفاعل +وفاعلة +وفاعلية +وفاعليتها +وفاق +وفاقت +وفاقدا +وفاقي +وفاليري +وفان +وفايز +وفايزة +وفتاة +وفتالات +وفتح +وفتحة +وفتحت +وفتحها +وفتحوا +وفتحي +وفتر +وفتشوا +وفتوحاتهم +وفتى +وفتيات +وفجأة +وفجره +وفجور +وفحص +وفحواها +وفخركم +وفخري +وفد +وفداحة +وفداً +وفدها +وفدوا +وفدوى +وفديا +وفدية +وفدًا +وفر +وفرائسها +وفرار +وفراشة +وفراملها +وفرانكفورت +وفراً +وفرة +وفرت +وفرته +وفرتها +وفرحة +وفرد +وفردها +وفردية +وفرز +وفرسا +وفرسان +وفرسانه +وفرساي +وفرسه +وفرش +وفرشاة +وفرشاتي +وفرشه +وفرص +وفرض +وفرضت +وفرضه +وفرضها +وفرضهم +وفرط +وفرع +وفرق +وفرقة +وفرنسا +وفرنسي +وفرنسية +وفرنسيس +وفرنيسيا +وفروا +وفروعها +وفريد +وفريدة +وفريق +وفريقه +وفرَّقني +وفساد +وفسفوري +وفسيولوجيًا +وفشل +وفشلت +وفصاحته +وفصلها +وفصيل +وفضاء +وفضاءات +وفضح +وفضل +وفضلا +وفضلات +وفضلاً +وفضلت +وفضله +وفضولي +وفضيلة +وفطائر +وفطريات +وفطنوا +وفعالة +وفعاليات +وفعالياته +وفعالية +وفعاليته +وفعل +وفعلا +وفعلاً +وفعلها +وفعّال +وفق +وفقا +وفقاً +وفقد +وفقدان +وفقدانه +وفقدها +وفقدوا +وفقط +وفقكم +وفقه +وفقهاء +وفقيراً +وفقًا +وفك +وفكتور +وفكر +وفكرة +وفكرت +وفكرته +وفكره +وفكري +وفكريا +وفكرية +وفكرًا +وفكّر +وفلاح +وفلاحها +وفلاسفة +وفلاسفتهم +وفلاش +وفلان +وفلج +وفلذة +وفلسطين +وفلسطينية +وفلسطينيون +وفلسفة +وفلسفته +وفلسفي +وفلسفية +وفلكلور +وفلكي +وفلل +وفلوس +وفمه +وفن +وفناء +وفنادق +وفنادقها +وفنان +وفنانا +وفنانون +وفناني +وفنانين +وفنانًا +وفناً +وفند +وفندق +وفندقها +وفندقية +وفنزويلا +وفنلندا +وفنون +وفنونه +وفنونها +وفني +وفنيا +وفنياً +وفنية +وفنيتها +وفهرس +وفهم +وفهمه +وفهمها +وفوائده +وفوائدها +وفوار +وفواكه +وفواكهها +وفوجئ +وفوجئت +وفود +وفودًا +وفور +وفورا +وفورسيزنز +وفورية +وفوزي +وفوض +وفوق +وفوقنا +وفى +وفي +وفيا +وفيات +وفية +وفيت +وفيتنام +وفير +وفيرا +وفيرة +وفيروز +وفيروسات +وفيرًا +وفيزا +وفيزياء +وفيزيائية +وفيزيقية +وفيض +وفيعام +وفيق +وفيلسوف +وفيلسوفا +وفيلمون +وفيما +وفينثنثو +وفينوس +وفينيقية +وفيه +وفيها +وفيهم +وفيًا +وفَتَنَنِي +وفَقْد +وفَلاحها +وفُتح +وفُتحت +وفُتنت +وفُقد +وفَّر +وفَّقه +وق +وقأقأ +وقائد +وقائع +وقائعها +وقائم +وقائمة +وقائي +وقائيا +وقائية +وقابل +وقابلة +وقابلتهم +وقابليته +وقابليتها +وقاتم +وقاد +وقادة +وقادت +وقادرا +وقادراً +وقاذورات +وقار +وقارئا +وقارنت +وقارنها +وقاسيا +وقاص +وقاصدي +وقاضي +وقاطن +وقاطنيه +وقاع +وقاعات +وقاعة +وقافلة +وقال +وقالا +وقالت +وقالوا +وقام +وقامت +وقامته +وقاموا +وقانوني +وقانونيا +وقانونية +وقاوم +وقاومت +وقاية +وقبائل +وقباب +وقبابه +وقبة +وقبته +وقبرص +وقبضاتها +وقبع +وقبل +وقبلت +وقبلتهما +وقبله +وقبلها +وقبلهما +وقبلوني +وقبول +وقبولا +وقبولاً +وقبيل +وقبيلته +وقت +وقتئذ +وقتا +وقتاً +وقتذاك +وقتك +وقتل +وقتلاهم +وقتلهم +وقتلوه +وقتما +وقتنا +وقته +وقتها +وقتهم +وقتي +وقتية +وقتٍ +وقتَ +وقد +وقداسة +وقدر +وقدرات +وقدراته +وقدراتها +وقدراتهم +وقدرة +وقدرةً +وقدرت +وقدرته +وقدرتها +وقدرتهم +وقدره +وقدروا +وقدري +وقدسته +وقدسية +وقدم +وقدمت +وقدمناها +وقدمني +وقدمها +وقدموا +وقدمي +وقدوة +وقدوم +وقديمة +وقذائف +وقذف +وقذفت +وقرآني +وقرأ +وقرأت +وقرأته +وقرأتها +وقرأه +وقراءاته +وقراءة +وقراءه +وقراؤنا +وقراراتي +وقراه +وقربتها +وقرر +وقررت +وقرروا +وقرصة +وقرطاج +وقرى +وقريب +وقريبا +وقريبة +وقرية +وقرّر +وقرَّبت +وقزح +وقس +وقسا +وقساوسة +وقسط +وقسم +وقسما +وقسماتها +وقسماتي +وقسمت +وقسوة +وقسوته +وقسَّموا +وقشتالة +وقشف +وقص +وقصائد +وقصة +وقصد +وقصدوا +وقصر +وقصرها +وقصص +وقصصاً +وقصصًا +وقصور +وقصيدة +وقصيدتي +وقصيرة +وقصّ +وقصّرت +وقضاء +وقضايا +وقضاياها +وقضاياهم +وقضبان +وقضمنا +وقضوا +وقضى +وقضية +وقضيت +وقطار +وقطاع +وقطة +وقطر +وقطرها +وقطع +وقطعة +وقطعنا +وقع +وقعا +وقعة +وقعت +وقعنا +وقعها +وقعوا +وقـال +وقف +وقفا +وقفات +وقفاً +وقفة +وقفت +وقفته +وقفتي +وقفر +وقفز +وقفزاته +وقفزت +وقفشات +وقفصة +وقفنا +وقفوا +وقفية +وقل +وقلادة +وقلاعه +وقلب +وقلبا +وقلبها +وقلبي +وقلة +وقلت +وقلعة +وقلق +وقلقة +وقلقه +وقلقي +وقلل +وقللت +وقللوا +وقلم +وقلما +وقلماً +وقلمه +وقلنا +وقليت +وقليل +وقليلا +وقليلات +وقليلاً +وقليلة +وقلّد +وقمت +وقممه +وقمنا +وقناديل +وقناطر +وقناع +وقناعة +وقنافذ +وقنصلياتها +وقنوات +وقنيدس +وقهر +وقهرها +وقهقهاتهم +وقوات +وقواعد +وقواعده +وقوافل +وقوامه +وقوانين +وقوبلت +وقوة +وقوته +وقوتها +وقود +وقودا +وقوداً +وقودها +وقودية +وقودًا +وقورنت +وقوع +وقوعه +وقوعها +وقوف +وقوفه +وقوفها +وقوفهم +وقوله +وقومي +وقوى +وقوية +وقوّ +وقى +وقيادات +وقيادة +وقيادتها +وقياس +وقياساً +وقيام +وقيسارية +وقيض +وقيل +وقيم +وقيمة +وقيمته +وقيمتها +وقيمه +وقيمها +وقيمياً +وقُبر +وقُبَلُنا +وقُتل +وقُدمت +وكأس +وكأن +وكأنك +وكأنما +وكأننا +وكأنني +وكأنه +وكأنها +وكأنهم +وكأنهما +وكأني +وكإجراء +وكإنسان +وكائناته +وكابد +وكاتب +وكاتم +وكاد +وكادت +وكارليل +وكاسات +وكاسيو +وكافتيرات +وكافتيريا +وكافور +وكالات +وكالاتها +وكالة +وكالتين +وكالحارات +وكالطائر +وكالعادة +وكامل +وكان +وكانا +وكانت +وكانوا +وكبار +وكبح +وكبر +وكبرت +وكبرياء +وكبـرت +وكبير +وكبيرة +وكتاب +وكتاباته +وكتابة +وكتابتها +وكتابك +وكتابنا +وكتابه +وكتب +وكتبت +وكتبتهما +وكتبه +وكتبوا +وكتبًا +وكتجسيد +وكتفه +وكتفيها +وكتيب +وكتّاب +وكثافتها +وكثر +وكثرة +وكثرت +وكثير +وكثيرا +وكثيرات +وكثيراً +وكثيفاً +وكحلٌ +وكد +وكدنا +وكذا +وكذلك +وكراتشي +وكراستنا +وكراسي +وكراهيتهم +وكراون +وكربر +وكربلائيات +وكربوهيدرات +وكرة +وكررت +وكرست +وكرمه +وكروب +وكروكيات +وكروم +وكريم +وكرّست +وكرّمته +وكزبرة +وكزته +وكسا +وكسب +وكسر +وكسرت +وكسروا +وكسل +وكسوة +وكشاهد +وكشف +وكشفت +وكشمير +وكعادتها +وكعب +وكعبة +وكف +وكفاءات +وكفاءة +وكفاءته +وكفاحه +وكفالة +وكفى +وكفّنهم +وكل +وكلا +وكلاء +وكلاب +وكلام +وكلاهما +وكلف +وكلفت +وكلفهم +وكلكم +وكلما +وكلماته +وكلماتها +وكلمة +وكلنا +وكله +وكلها +وكلود +وكلوريد +وكلي +وكليا +وكليات +وكليب +وكلية +وكلَّفه +وكلَّمتُه +وكلُّه +وكم +وكما +وكمامات +وكمبردج +وكمبوديا +وكمبيدات +وكمثال +وكمسلم +وكمسلمة +وكمن +وكمية +وكن +وكنا +وكنائس +وكنانة +وكنت +وكنتيجة +وكنتُ +وكندا +وكنديات +وكنز +وكنوز +وكنوع +وكنيسة +وكهفه +وكهلاً +وكوابيسها +وكوارث +وكواليسها +وكوبا +وكوبونات +وكوجهة +وكورال +وكوراليس +وكورنيي +وكوريا +وكوستاريكا +وكوسوفا +وكوسوفو +وكوش +وكولورادو +وكولومبيا +وكوم +وكوموا +وكون +وكونداكوف +وكونه +وكونها +وكونوا +وكوّن +وكوّنا +وكوّنوا +وكي +وكيانه +وكيانها +وكيانهم +وكياني +وكيرمان +وكيف +وكيفية +وكيفيّات +وكيل +وكيلا +وكيلاً +وكيله +وكيلها +وكيماوي +وكيماويات +وكيماوية +وكيمياء +وكينونتها +وكينويل +وكينيا +وكَرَجَتْ +وكُتب +وكُتّابه +وكُرم +ول +ولآلئ +ولأجل +ولأجيال +ولأخي +ولأرى +ولأسباب +ولأسفاره +ولأشح +ولأشعة +ولأمد +ولأن +ولأنني +ولأنه +ولأنها +ولأنهم +ولأني +ولأوركسترا +ولأول +ولأولئك +ولأي +ولإدراك +ولإذكاء +ولإعالة +ولإعداد +ولإقبال +ولإقناع +ولئن +ولا +ولاء +ولاأخفيكم +ولاأزال +ولائحة +ولابد +ولابمنع +ولاتزال +ولاتعرف +ولاتفصلني +ولاتقتربوا +ولاتقتصر +ولاتقول +ولاتلبث +ولاتنداح +ولاجئيها +ولاحتمالات +ولاحظ +ولاحظت +ولاحقا +ولاحقتها +ولاد +ولادات +ولادة +ولادته +ولادتها +ولادتهم +ولادتي +ولادي +ولازالت +ولازم +ولاس +ولاسيما +ولاسيَّما +ولاشك +ولاعب +ولاعبي +ولاعصرية +ولافتات +ولاقت +ولاقطة +ولاقى +ولانتهاكات +ولانلبث +ولاننسى +ولاهي +ولاوس +ولايات +ولاية +ولايتسكر +ولايتي +ولايحافظون +ولايحسون +ولايزال +ولايستأذنونهم +ولايسمح +ولايقوم +ولايلبث +ولاينتهى +ولاينجدني +ولاينشر +ولاينفى +ولباس +ولبت +ولبست +ولبسته +ولبنان +ولبى +ولبيان +ولبيت +ولبّوا +ولتأكيد +ولتؤجج +ولتؤدوا +ولتاريخها +ولتجسيد +ولتحفيز +ولتحقيق +ولتدمير +ولتربت +ولترجمة +ولتسائل +ولتستريحوا +ولتسليط +ولتشجيع +ولتشويهها +ولتصطدم +ولتعرف +ولتعريف +ولتعزيز +ولتعلن +ولتقول +ولتكن +ولتكنْ +ولتكون +ولتكوينه +ولتلبية +ولتنفيذ +ولتنقية +ولتوفير +ولتوقع +ولثقافتها +ولجأت +ولجان +ولجانه +ولجانها +ولجت +ولجمله +ولجميع +ولجنة +ولجوءاً +ولجوئها +ولحاء +ولحاجتي +ولحال +ولحاهم +ولحركة +ولحسن +ولحظات +ولحظة +ولحق +ولحقني +ولحكومه +ولحم +ولحماية +ولحمه +ولحن +ولحنت +ولحوالي +ولحوم +ولحية +ولحيته +ولخص +ولد +ولدا +ولدافعي +ولدان +ولداً +ولدت +ولدتني +ولدته +ولدتها +ولدراسة +ولدعاوى +ولده +ولدها +ولدوا +ولدى +ولدي +ولديك +ولدينا +ولديه +ولديها +ولديهم +ولديّ +ولذا +ولذة +ولذةً +ولذته +ولذلك +ولذوقه +ولربط +ولرحلة +ولزم +ولزمت +ولزملائي +ولزوجة +ولزوجته +ولسان +ولسانه +ولسانيات +ولست +ولستُ +ولسرطانات +ولسعته +ولسعهم +ولسماع +ولسنا +ولسنوات +ولسوء +ولسوف +ولشد +ولشعب +ولشفتي +ولشيخك +ولصالح +ولصحفية +ولصدور +ولصون +ولضخ +ولضمان +ولطائف +ولطالما +ولطف +ولطيف +ولطيفة +ولع +ولعائلتها +ولعاب +ولعاً +ولعب +ولعبا +ولعبارته +ولعبة +ولعبدالجبار +ولعت +ولعدة +ولعدد +ولعدم +ولعل +ولعلك +ولعلكم +ولعلنا +ولعله +ولعلها +ولعلهم +ولعلي +ولعلّ +ولعلّني +ولعلّي +ولعلَّ +ولعه +ولعي +ولـما +ولفتت +ولفتح +ولفترات +ولفترة +ولفريق +ولفنه +ولقاء +ولقاءات +ولقاءاته +ولقاؤه +ولقاحاً +ولقب +ولقد +ولقدرتها +ولقل +ولقلدت +ولقي +ولقيتني +ولقّب +ولك +ولكاتب +ولكثير +ولكسب +ولكل +ولكلِّ +ولكم +ولكن +ولكنك +ولكننا +ولكنني +ولكنه +ولكنها +ولكنهم +ولكنهما +ولكنى +ولكني +ولكنّ +ولكنَّ +ولكوننا +ولكي +ولكيلا +وللآخرين +وللأسف +وللأسماء +وللأسواق +وللأطفال +وللأفراخ +وللإسلام +وللإعلام +وللبحر +وللبحوث +وللتأكد +وللتاريخ +وللتبادل +وللتجميل +وللتخفيف +وللتدليل +وللتساؤل +وللتعارف +وللتوجهات +وللثقافة +وللحال +وللحصول +وللحظة +وللحقيقة +وللحيرة +وللخارج +وللدهشة +وللدول +وللذهب +وللرأي +وللرجال +وللردّ +وللرواسب +وللرواية +وللزمن +وللزوار +وللسكون +وللسهر +وللشعب +وللشوارع +وللشيخ +وللضيوف +وللطبيعة +وللطلاب +وللعادات +وللعالم +وللعرب +وللعمل +وللفقراء +وللقانون +وللقطان +وللكلام +وللكلمات +وللمحافظة +وللمخطوطات +وللمدارس +وللمدينة +وللمرء +وللمراقبين +وللمرة +وللمرطبات +وللمزيد +وللمسلمين +وللمناداة +وللمواطن +وللمولوية +وللناقد +وللنحر +وللنحل +وللنشر +ولله +وللولايات +ولليمين +وللُبِّها +ولم +ولما +ولماذا +ولمبات +ولمجرد +ولمحته +ولمدة +ولمزيد +ولمس +ولمساعدة +ولمسافة +ولمسايرة +ولمست +ولمستها +ولمسنا +ولمصانع +ولمصلحة +ولمظاهر +ولمع +ولمعانيه +ولمعرفة +ولمعرفتها +ولمن +ولمنهجها +ولمواجهة +ولمواكبة +ولموضوع +ولمَّا +ولن +ولنأخذ +ولنا +ولنبدأ +ولنبل +ولنتأمل +ولنتائجها +ولنتذكر +ولنتركه +ولنتعرف +ولنجزينهم +ولندرك +ولندع +ولندن +ولنستمع +ولنعرف +ولنعطي +ولنقل +ولننتقل +ولننظر +وله +ولها +ولهديه +ولهذا +ولهذه +ولهذين +ولهم +ولهيبها +ولو +ولوائح +ولواها +ولوج +ولوجهم +ولوح +ولوحات +ولوحاتي +ولودفيح +ولوذعيته +ولوركا +ولوزة +ولوس +ولوعة +ولوقا +ولولا +ولوم +ولون +ولويزه +ولويس +ولوّن +ولى +ولي +وليؤكد +وليؤمنوا +وليال +وليالي +ولياليه +وليالٍ +وليام +وليامز +وليبرمان +وليبعث +وليبيا +وليت +وليتذكر +وليتعوذ +وليتفقد +وليتفل +وليتمان +وليتني +وليته +وليتهم +وليحدث +وليد +وليدة +وليده +وليدي +وليس +وليساعد +وليست +وليستا +وليستعذ +وليسوا +وليصلح +وليضيف +وليفين +وليكتب +وليكن +وليكون +وليل +وليلاً +وليلة +وليلى +وليم +وليمة +ولين +وليننجراد +وليوصلن +ولييها +وليّناً +ولُقّب +ولِي +ولّد +وم +ومأثورها +ومأجوج +ومأساوي +ومألوف +ومأمون +ومأمونة +ومؤازة +ومؤازرة +ومؤتمر +ومؤتمرات +ومؤتمراته +ومؤتمراتهم +ومؤثر +ومؤثرا +ومؤثرات +ومؤثراً +ومؤثرة +ومؤديا +ومؤذية +ومؤرخاً +ومؤرخي +ومؤرخيه +ومؤسس +ومؤسسات +ومؤسساته +ومؤسساتها +ومؤسسة +ومؤسسها +ومؤسسوه +ومؤسسيا +ومؤشر +ومؤلف +ومؤلفات +ومؤلفاتهم +ومؤلفاً +ومؤلم +ومؤلمة +ومؤملة +ومؤمنا +ومؤهلون +ومؤيد +ومؤيديه +ومئات +ومئذنة +وما +وماء +وماأزال +ومائة +ومائتا +ومائتى +ومائتي +ومائدة +ومات +وماج +وماجستير +وماجهل +ومادام +ومادامت +ومادة +ومادون +وماذا +ومارتن +ومارس +ومارست +وماركات +ومارنيون +ومازال +ومازالت +ومازلت +ومازلتم +ومازلنا +وماستركارد +وماضيها +وماضيهم +ومافيهما +وماكسيمو +ومالك +ومالم +ومالي +ومالية +وماليزيا +ومانتيكية +وماهو +وماهية +ومبادئ +ومبادئها +ومبادرة +ومبادلاتها +ومباركة +ومباركتهم +ومباشر +ومباشراً +ومباشرة +ومبانيها +ومبتكرة +ومبتهجاً +ومبحوحة +ومبدئية +ومبدعا +ومبدعه +ومبسطة +ومبشرين +ومبعث +ومبناها +ومبيدات +ومتأثرا +ومتأنّ +ومتابعا +ومتابعة +ومتابعته +ومتابعتها +ومتاحف +ومتاعبه +ومتاعبهم +ومتاعه +ومتباعدة +ومتباينة +ومتجدد +ومتجددة +ومتجددًا +ومتحدثا +ومتحدثاً +ومتحدثة +ومتحضر +ومتحف +ومتخاصمة +ومتخصصة +ومتخصصوه +ومتخلفة +ومتخمة +ومتداولة +ومتراكمة +ومترجما +ومترجمة +ومتره +ومتزايد +ومتسخا +ومتسقاً +ومتشحة +ومتشعبة +ومتصاعداً +ومتصل +ومتصلبة +ومتطلبات +ومتطلباتها +ومتطورا +ومتعاطفة +ومتعة +ومتعددة +ومتعرجة +ومتعصّبة +ومتعلم +ومتقنة +ومتكامل +ومتكرر +ومتلازمة +ومتمايزة +ومتمرد +ومتمردة +ومتمرسا +ومتميز +ومتميزة +ومتنقلا +ومتنوع +ومتنوعاً +ومتنوعة +ومتهالكة +ومتواصل +ومتواصلة +ومتوافر +ومتوجها +ومتوسط +ومتولدة +ومتى +ومتينا +ومثابرته +ومثبطات +ومثقف +ومثقفا +ومثقفة +ومثقفون +ومثقفينا +ومثل +ومثلت +ومثلما +ومثله +ومثلها +ومثيل +ومثّلا +ومجابهاتها +ومجاريه +ومجازر +ومجال +ومجالات +ومجالاته +ومجالاً +ومجالس +ومجانية +ومجاهدة +ومجتمع +ومجتمعا +ومجتمعاتهم +ومجتمعه +ومجتمعي +ومجدد +ومجدي +ومجدياً +ومجرى +ومجزرة +ومجلات +ومجلاتنا +ومجلاتها +ومجلاتهم +ومجلة +ومجلس +ومجلسها +ومجموعات +ومجموعة +ومجهدة +ومجهز +ومجهول +ومجيء +ومحادثات +ومحاربة +ومحاسبة +ومحاسن +ومحاضر +ومحاضراتكم +ومحاضراته +ومحاضراتها +ومحاضراتي +ومحاطة +ومحاكاة +ومحاكم +ومحاكمة +ومحاكمتهم +ومحال +ومحاليقه +ومحامي +ومحاورا +ومحاوراته +ومحاولات +ومحاولاته +ومحاولاتي +ومحاولة +ومحاولتهم +ومحب +ومحبة +ومحبي +ومحبيه +ومحبّوه +ومحترفاً +ومحتفظة +ومحتويات +ومحتوياته +ومحتوياتها +ومحجة +ومحدث +ومحدداتها +ومحددة +ومحدق +ومحدود +ومحدودة +ومحسوس +ومحطات +ومحطة +ومحطومي +ومحـتوياتها +ومحفظي +ومحفل +ومحقق +ومحققًا +ومحلات +ومحليًّا +ومحمد +ومحمود +ومحو +ومحيط +ومحيطات +ومحيي +ومخارج +ومخازن +ومخاض +ومخاطبة +ومخاطر +ومخالفتها +ومخاوف +ومخاوفهم +ومخاوفي +ومخبره +ومختار +ومختبرات +ومخترعًا +ومختصر +ومختطف +ومختلسة +ومختلف +ومختلفة +ومخربا +ومخرج +ومخرجين +ومخصبات +ومخصصة +ومخططات +ومخططاتها +ومخطوطات +ومخلفات +ومخلوق +ومخمس +ومخيلة +ومخيمات +ومد +ومدائن +ومداخل +ومداخله +ومداد +ومدارس +ومدافعا +ومدافعة +ومدافن +ومداهمته +ومدببة +ومدة +ومدت +ومدته +ومدتها +ومدح +ومدحوه +ومدراء +ومدربة +ومدرجات +ومدرساً +ومدرسة +ومدرستي +ومدرسين +ومدرسيهم +ومدرّساً +ومدعومًا +ومدققي +ومدن +ومدنهم +ومدهشة +ومدون +ومدى +ومدير +ومديراً +ومديرها +ومدينة +ومدَّ +ومذاقه +ومذكرات +ومذنب +ومذهبه +ومذهبية +ومر +ومرآة +ومرأى +ومرئية +ومرابض +ومرات +ومراجع +ومراجعات +ومراجعة +ومراجعهم +ومراحل +ومراد +ومراسم +ومراعاة +ومراعي +ومرافق +ومرافقها +ومرافقيه +ومراقب +ومراقبة +ومراقبتها +ومراقبيه +ومراكب +ومراكز +ومراكش +ومرام +ومراهقتي +ومراوح +ومراوحتها +ومربعة +ومربيّاً +ومرة +ومرت +ومرتاديه +ومرتبطة +ومرتع +ومرج +ومرجعاً +ومرجعيات +ومرجعية +ومرح +ومرحا +ومرد +ومردوده +ومرزا +ومرسم +ومرسمه +ومرسى +ومرسيليا +ومرشحة +ومرصد +ومرصعة +ومرض +ومرضه +ومرضى +ومرعبا +ومرفق +ومركب +ومركبات +ومركباته +ومركبة +ومركز +ومركزها +ومركزًا +ومرها +ومروءته +ومروجها +ومروجي +ومرور +ومرورا +ومروراً +ومرورنا +ومرونة +ومريدي +ومريديه +ومرير +ومرّ +ومرّت +ومرّر +ومرّها +ومزاراً +ومزارع +ومزايا +ومزاياه +ومزدحمة +ومزقتْها +ومزماره +ومزوراً +ومزيد +ومزيداً +ومزيدة +ومزيفا +ومسألة +ومسؤولة +ومسؤولية +ومسؤوليتها +ومسئولة +ومسئولي +ومسئولية +ومسئولين +ومساء +ومساءلة +ومساؤهم +ومسائها +ومسابقات +ومسابك +ومساجات +ومساجد +ومساجلاته +ومساحات +ومساحة +ومسار +ومسارها +ومسارًا +ومساعداً +ومساعدة +ومساعده +ومساعيه +ومسالمًا +ومسامراته +ومسامع +ومساندة +ومساهماته +ومساهمة +ومساهمته +ومساواتهم +ومسببات +ومسببة +ومسبحه +ومسبقة +ومسبِّباتها +ومستثمرين +ومستحضرات +ومستديما +ومستشار +ومستشاراً +ومستشاره +ومستشارًا +ومستشارَه +ومستشرف +ومستشفى +ومستشفيات +ومستفيدا +ومستقبل +ومستقبلاً +ومستقبله +ومستقبلهم +ومستقيمة +ومستلزمات +ومستمر +ومستمرة +ومستهل +ومستهلكة +ومستواه +ومستودعات +ومستوردة +ومستوصفا +ومستوى +ومستوي +ومستويات +ومستوياته +ومستوياتهم +ومسجد +ومسجلة +ومسحها +ومسرح +ومسرحيات +ومسرحية +ومسعود +ومسقط +ومسقوفة +ومسلسلات +ومسلطًا +ومسلم +ومسلماته +ومسلمة +ومسلمون +ومسمع +ومسموعة +ومسمّيات +ومسهمة +ومسيئاً +ومسيحية +ومسيحيهم +ومسيرته +ومسيرتي +ومسيّراً +ومشابهاتها +ومشاركة +ومشاركتها +ومشاريع +ومشاطرتي +ومشاعر +ومشاعره +ومشاعرها +ومشاعل +ومشافهته +ومشاكل +ومشاكلها +ومشاهداته +ومشاهدته +ومشاهير +ومشايخها +ومشتركة +ومشتقات +ومشتقاته +ومشجع +ومشجعا +ومشدود +ومشرئبة +ومشرب +ومشردي +ومشرف +ومشروبات +ومشروحة +ومشروع +ومشروعات +ومشروعاتها +ومشعل +ومشعلاً +ومشفقا +ومشقة +ومشكلات +ومشكلة +ومشكلتي +ومشهد +ومشوراته +ومشى +ومصابيح +ومصادر +ومصادرة +ومصادرتها +ومصادره +ومصادقة +ومصارف +ومصاريف +ومصالح +ومصالحه +ومصالحها +ومصايفها +ومصبّ +ومصداقا +ومصداقية +ومصدر +ومصدرة +ومصدرهما +ومصر +ومصروفي +ومصطفى +ومصطفي +ومصطلح +ومصطلحات +ومصفى +ومصمما +ومصنعًا +ومصنوعاته +ومصنوعاتها +ومصوراتها +ومصوع +ومصير +ومصيرية +ومضاءلة +ومضامينها +ومضت +ومضخات +ومضللة +ومضمون +ومضمونا +ومضموناً +ومضمونه +ومضنية +ومضوا +ومضى +ومضيت +ومضيفا +ومطابقة +ومطابقته +ومطاحن +ومطار +ومطارات +ومطارحة +ومطاعم +ومطالبة +ومطالبه +ومطالبها +ومطالعة +ومطبخه +ومطبوعات +ومطران +ومطربين +ومطعمة +ومطعونين +ومطلع +ومطلوب +ومطيع +ومطيعة +ومظاهر +ومظاهرات +ومظاهره +ومظاهرها +ومظلمة +ومظهرا +ومع +ومعاجم +ومعارض +ومعارضتها +ومعارضتهم +ومعارف +ومعارفهم +ومعارك +ومعاركه +ومعاصر +ومعاصريه +ومعاقبة +ومعاقبتهم +ومعالجات +ومعالجة +ومعالجته +ومعالم +ومعالمه +ومعالمها +ومعامل +ومعاناة +ومعاند +ومعانيه +ومعانٍ +ومعاهد +ومعاوية +ومعايشتهم +ومعايير +ومعبد +ومعبّرة +ومعتدل +ومعتقداته +ومعتقداتها +ومعتقل +ومعتمدة +ومعتمر +ومعدات +ومعداته +ومعدل +ومعدلات +ومعدنه +ومعدين +ومعذرة +ومعرض +ومعرضي +ومعرفة +ومعرفته +ومعرفتهم +ومعرفتي +ومعرفي +ومعروف +ومعروفاً +ومعروفة +ومعزولة +ومعسكر +ومعسكراتهم +ومعضلة +ومعطيات +ومعظم +ومعظمه +ومعظمها +ومعظمهم +ومعقد +ومعقدة +ومعكم +ومعلف +ومعلقا +ومعلما +ومعلمه +ومعلميه +ومعلنة +ومعلوم +ومعلومات +ومعلوماتها +ومعمار +ومعمول +ومعن +ومعنا +ومعناه +ومعناها +ومعنوي +ومعنويا +ومعنى +ومعنيون +ومعنيين +ومعه +ومعها +ومعهد +ومعهم +ومعوقات +ومعي +ومعيشتهم +ومفاجآت +ومفاجئ +ومفاد +ومفاده +ومفارقاتها +ومفارقة +ومفاهيم +ومفتاح +ومفتش +ومفتونا +ومفرداتها +ومفرزاتها +ومفروض +ومفروكة +ومفكر +ومفكرا +ومفكرته +ومفكرون +ومفكروه +ومفكرين +ومفكريهم +ومفكّر +ومفكّرا +ومفكّريهم +ومفهوم +ومفهومات +ومفهومه +ومفيد +ومفيداً +ومقابل +ومقابلة +ومقاتلة +ومقارنا +ومقارنة +ومقارنته +ومقاصدها +ومقاصدهم +ومقاطعة +ومقاعد +ومقالات +ومقالاتنا +ومقالاته +ومقالبه +ومقالنا +ومقاليد +ومقام +ومقامات +ومقاماته +ومقاماً +ومقامها +ومقاهي +ومقاهيها +ومقاول +ومقاومة +ومقاومته +ومقبرتي +ومقبول +ومقتضب +ومقتفيه +ومقتن +ومقتي +ومقدار +ومقدرا +ومقدرتها +ومقدرتهم +ومقدساته +ومقدمه +ومقر +ومقراً +ومقره +ومقرها +ومقننًا +ومقهى +ومقوله +ومقومات +ومقوّماتنا +ومقياسها +ومكابح +ومكابرتك +ومكاتب +ومكاتبها +ومكاسبهم +ومكافئات +ومكافحة +ومكان +ومكانة +ومكانةالمركز +ومكانته +ومكانتها +ومكانه +ومكاني +ومكانًا +ومكة +ومكتب +ومكتبات +ومكتبة +ومكتبته +ومكتبتها +ومكتبتي +ومكتبي +ومكتبيا +ومكتبًا +ومكتسبات +ومكتوب +ومكتوبه +ومكث +ومكثفة +ومكر +ومكسبا +ومكشوف +ومكناس +ومكنه +ومكونات +ومكوناته +ومكوناتها +ومكّنتها +وملء +وملأتها +وملأوا +وملاءمته +وملائكته +وملائمة +وملابس +وملابسه +وملابسها +وملابسي +وملاحظات +وملاحظة +وملاحقات +وملاحمه +وملاذا +وملازمته +وملامح +وملامحها +وملاهي +وملاهيها +وملاوي +وملايين +وملبس +وملبسة +وملتاعا +وملتبس +وملتقط +وملتقى +وملح +وملحقاته +وملحقاتها +وملحمة +وملخص +وملخصا +وملعباً +وملعمي +وملفات +وملكا +وملكة +وملما +وملموسان +وملموسة +وملونين +وملوِّثة +ومليئا +ومليئة +ومما +وممارسات +وممارساته +وممارساتها +وممارسة +وممارستها +وممالك +وممتعا +وممتعاً +وممتلئًا +وممثل +وممثلو +وممثلى +وممثلي +وممثلين +وممرات +ومملة +وممن +وممنوع +ومميزات +وممّا +ومن +ومناجم +ومناحي +ومناخية +ومنارة +ومناسبات +ومناسبة +ومناصري +ومناضلا +ومناطق +ومناطقها +ومناظر +ومناظرتها +ومنافسة +ومنافع +ومناقشات +ومناقشاته +ومناقشة +ومناقشتها +ومناهج +ومناهجه +ومناهجها +ومناهضة +ومناهضته +ومنبثقة +ومنتج +ومنتجات +ومنتجاته +ومنتجاتها +ومنتجع +ومنتجعات +ومنتجعاً +ومنتديات +ومنتشية +ومنتقاة +ومنتهى +ومنتوجاتها +ومنجزاتنا +ومنجزاته +ومنجزاتها +ومنح +ومنحت +ومنحته +ومنحنى +ومنحنيات +ومنحه +ومنحوتات +ومنخفضاته +ومندوب +ومندوبو +ومنذ +ومنذئذ +ومنزلته +ومنشئك +ومنصات +ومنصور +ومنطق +ومنطقة +ومنطقته +ومنطلقات +ومنطلقاتها +ومنطوق +ومنظم +ومنظمات +ومنظماته +ومنظمة +ومنظمى +ومنظور +ومنظومة +ومنظّرة +ومنظّم +ومنع +ومنعت +ومنعتني +ومنعطفات +ومنعوا +ومنعوه +ومنفذ +ومنفعلا +ومنفى +ومنقبتها +ومنقذنا +ومنك +ومنكمشا +ومنمنمات +ومنمنماتها +ومنه +ومنها +ومنهج +ومنهجهم +ومنهجي +ومنهجية +ومنهم +ومنهما +ومني +ومنير +ومنيرة +ومهاجرة +ومهاجريه +ومهاد +ومهارات +ومهارة +ومهارته +ومهتما +ومهتمون +ومهدئ +ومهدم +ومهدي +ومهرجان +ومهرجانات +ومهم +ومهما +ومهمات +ومهمان +ومهمة +ومهمته +ومهملات +ومهن +ومهندسا +ومهوى +ومهيبا +ومهيَّأة +ومهّدت +ومهّدوا +وموائد +ومواجهتهم +ومواد +ومواده +وموارد +ومواساة +ومواصفات +ومواصلة +ومواطنون +ومواعظ +ومواعظه +ومواقف +ومواقفه +ومواكبة +ومواكبتي +ومواهب +ومواهبها +وموته +وموثوقين +وموجة +وموجه +وموجود +وموجودًا +وموحدة +وموحية +ومودة +وموردا +وموريس +وموزونة +وموسرون +وموسكوفية +وموسم +وموسوعية +وموسى +وموسيقار +وموسيقى +وموصلا +وموصول +وموضع +وموضوعاتها +وموضوعاً +وموطن +وموطنه +وموظف +وموظفي +وموفنبيك +وموقع +وموقعه +وموقعها +وموقف +وموقفاً +وموقفه +ومول +ومولد +ومونولوجات +وموهبة +وموهبتها +وموهبتي +وموهوبا +وموّلته +ومي +وميادين +وميادينها +ومياه +ومياها +ومياهه +ومية +وميتا +وميخائيل +وميداليات +وميدان +وميدانية +وميزان +وميسر +وميسرة +وميسورو +وميض +وميعاد +وميكروبات +وميل +وميليسا +ومَن +ومَنْ +ومُسلَّمة +ومُسمعا +ومُضعِفًا +ومُنجّم +ونأمل +ونأياً +ونؤسس +ونائب +ونائيا +ونابلس +وناجحًا +وناجي +ونادر +ونادراً +ونادى +ونادي +ونادية +ونار +وناسيتوس +وناشد +وناشرا +وناضلت +وناظرها +وناقد +وناقدا +وناقدة +وناقش +وناقشتها +وناقشها +ونال +ونالت +ونام +وناميبيا +وناولني +ونايس +ونباتات +ونباتها +ونبال +ونبتـــرد +ونبدأ +ونبذل +ونبض +ونبقى +ونبهتني +ونبيل +ونبيلة +ونبيّه +ونتائج +ونتائجها +ونتاج +ونتاجها +ونتبنى +ونتج +ونتجاوزه +ونتحايل +ونتحدث +ونتحسس +ونتراشف +ونترجمها +ونترك +ونتطلع +ونتعفن +ونتفا +ونتفق +ونتماثل +ونتمناه +ونتوقع +ونتوقف +ونتيجة +ونثر +ونجاة +ونجاح +ونجاحاً +ونجاه +ونجح +ونجحت +ونجحنا +ونجحوا +ونجد +ونجده +ونجدها +ونجران +ونجعل +ونجلس +ونجم +ونجمين +ونجهل +ونجور +ونجيب +ونحاور +ونحاول +ونحت +ونحلم +ونحمد +ونحن +ونحو +ونحوها +ونحيفا +ونخرجه +ونخلص +وندر +وندرة +وندرت +وندرمير +وندعم +وندفن +وندوات +وندواته +وندى +ونذكر +ونذهب +ونرجسه +ونرجو +ونرفع +ونركب +ونرميه +ونرى +ونري +ونزاهته +ونزاهتها +ونزع +ونزعة +ونزف +ونزل +ونزهو +ونزوةُ +ونزوع +ونسألها +ونساء +ونساءً +ونسائية +ونسب +ونسبا +ونسبة +ونسبه +ونستأني +ونستحدث +ونستطيع +ونستعرض +ونستعمله +ونستـــظلّ +ونستلهم +ونستمع +ونستنكر +ونستون +ونسج +ونسجوا +ونسخ +ونسخة +ونسخها +ونسعى +ونسمع +ونسمعها +ونسميها +ونسوا +ونسى +ونسيان +ونسيب +ونسيت +ونسيج +ونسيمها +ونسينا +ونشأ +ونشأة +ونشأةِ +ونشأت +ونشأته +ونشأتها +ونشأتُ +ونشاط +ونشاطات +ونشاطاته +ونشاطنا +ونشاطه +ونشاطها +ونشاهد +ونشاهدها +ونشبت +ونشدد +ونشر +ونشرا +ونشرات +ونشرت +ونشرته +ونشرتهما +ونشره +ونشرها +ونشعر +ونشوء +ونشيده +ونشير +ونشيطا +ونص +ونصائح +ونصائحها +ونصبه +ونصحتني +ونصحه +ونصدقها +ونصدّر +ونصر +ونصف +ونصفها +ونصفٌ +ونصوص +ونصوصنا +ونصيب +ونصيبي +ونصيبين +ونصيحتي +ونضالات +ونضالاً +ونضاله +ونضالها +ونضالية +ونضجت +ونضحت +ونضحي +ونضع +ونضيع +ونطالب +ونطمئن +ونظافة +ونظافتها +ونظام +ونظاما +ونظامها +ونظر +ونظرا +ونظرات +ونظراتها +ونظراً +ونظرة +ونظرت +ونظرته +ونظرتها +ونظروا +ونظري +ونظريات +ونظرية +ونظريته +ونظرًا +ونظل +ونظم +ونظمت +ونظمته +ونظيرتها +ونظيفة +ونظّم +ونظّمت +ونعالجه +ونعتقد +ونعتمد +ونعتنق +ونعرف +ونعلم +ونعم +ونعمت +ونعمته +ونعني +ونعيش +ونعيمة +ونفاذ +ونفترق +ونفتقد +ونفخت +ونفذت +ونفس +ونفسي +ونفسياً +ونفعه +ونفق +ونفكر +ونفوذ +ونفور +ونفى +ونفيه +ونقائصه +ونقاد +ونقاده +ونقاش +ونقاشا +ونقاشاتهم +ونقاط +ونقترب +ونقد +ونقدا +ونقدم +ونقدية +ونقرأه +ونقرأها +ونقش +ونقشوا +ونقص +ونقصان +ونقضي +ونقطة +ونقطتها +ونقل +ونقلت +ونقله +ونقلها +ونقلهم +ونقلوا +ونقوداً +ونقوشاتها +ونقول +ونقوم +ونقيضه +ونقيضها +ونكبة +ونكتشف +ونكتفي +ونكشف +ونكهتها +ونكون +ونلاحظ +ونلحظ +ونما +ونماءها +ونمائهم +ونماذج +ونمت +ونمحوه +ونمر +ونمط +ونملأ +ونمو +ونمواً +ونموت +ونموذج +ونموها +ونموهم +ونموّه +ونموّهم +ونمير +ونناقش +وننام +وننتظر +وننزل +وننصح +وننظمها +وننفق +ونهاد +ونهارا +ونهاره +ونهاية +ونهايتها +ونهب +ونهبت +ونهر +ونهرب +ونهض +ونهضة +ونهضت +ونهضويّه +ونهلت +ونهلنا +ونواب +ونواجه +ونوادر +ونوادره +ونوازع +ونوال +ونواياه +ونوبل +ونور +ونورا +ونورد +ونورسك +ونوضح +ونوع +ونوعا +ونوعاً +ونوعية +ونيابة +ونياراجي +ونيرودا +ونيف +ونيكاراجوا +ونينا +ونيوترونات +ونيوجيرسى +ونيوكاليدونيا +ونيويورك +ونُبْل +ونُحرم +ونُشِرَت +ونُقلت +ونُننزل +وهأنا +وهؤلاء +وها +وهاتان +وهاجة +وهاجر +وهاجم +وهادئة +وهادفة +وهافانا +وهامته +وهامشية +وهانحن +وهاهم +وهاهو +وهاهوالقطار +وهاهي +وهاواي +وهايتي +وهبت +وهبتنا +وهبتني +وهبك +وهبكم +وهبني +وهبه +وهبوط +وهبوطا +وهبي +وهبّت +وهتف +وهجا +وهجاً +وهجر +وهجرة +وهجرته +وهجه +وهجها +وهجوم +وهدأت +وهداياه +وهدد +وهدف +وهدفاً +وهدم +وهدمه +وهدوء +وهدوءها +وهدى +وهدّأ +وهدَّد +وهذا +وهذبت +وهذه +وهران +وهرب +وهربنا +وهرعت +وهرعنا +وهز +وهزات +وهزام +وهزة +وهزله +وهزم +وهزه +وهشمت +وهضم +وهضمته +وهضمها +وهكذا +وهل +وهلاك +وهلال +وهلة +وهلعي +وهم +وهما +وهماً +وهمة +وهمس +وهمهن +وهموم +وهمومك +وهمومه +وهمومي +وهمية +وهمًا +وهمّه +وهمّي +وهمَّة +وهن +وهنا +وهناك +وهنالك +وهندسة +وهندوراس +وهندية +وهنية +وهو +وهواء +وهواتف +وهواجسه +وهوامش +وهواياته +وهوراس +وهوكثيرا +وهولندا +وهوليان +وهوليدى +وهوما +وهونج +وهوندوراس +وهوى +وهوية +وهويت +وهويتها +وهويّتها +وهى +وهي +وهيأ +وهيأت +وهيئات +وهيئة +وهيئتهم +وهيب +وهيج +وهيكل +وهيكلة +وهيكله +وهيلتون +وهيمنة +وهيمنت +وهيو +وواجب +وواجباته +وواجباتها +وواجبه +وواجه +وواجهات +وواجهت +وواحد +ووادي +ووادٍ +وواسعاً +وواشنطن +وواصل +وواضح +ووافق +وواقع +وواقعنا +وواقعه +وواقعية +وواكبه +ووالد +ووالدته +ووالدتي +ووالدك +ووالده +ووالدها +ووالدي +ووتان +ووثقوا +ووجبات +ووجبة +ووجد +ووجدان +ووجدانه +ووجداني +ووجدت +ووجدتني +ووجدته +ووجدتُ +ووجدنا +ووجده +ووجدوا +ووجدوه +ووجع +ووجنتيها +ووجه +ووجهة +ووجهت +ووجهك +ووجهه +ووجهها +ووجهي +ووجود +ووجوده +ووجوهها +ووجوههم +ووجيه +ووحدات +ووحدانا +ووحدة +ووحدتها +ووحشة +ووحيد +ووحيدة +ووحَّدت +ووخزات +ووداد +وودت +وودز +وودي +ووديانه +ووراءها +وورث +وورد +ووردة +ووردت +وورش +وورلد +وورنر +ووريثة +ووزارة +ووزراء +ووزعت +ووزعوا +ووزنه +ووزير +ووسائط +ووسائل +ووسائلها +ووساطات +ووسام +ووسط +ووسع +ووسمه +ووسمها +ووسيلة +ووصائية +ووصاية +ووصف +ووصفات +ووصفه +ووصل +ووصلت +ووصلتني +ووصلته +ووصلوا +ووصولاً +ووضح +ووضع +ووضعاها +ووضعت +ووضعتها +ووضعناه +ووضعه +ووضعها +ووضعهم +ووضعوا +ووضعوه +ووضعيته +ووضعيتها +ووضوح +ووضوحها +ووطئت +ووطنك +ووطنه +ووطنها +ووطنيته +ووظائف +ووظائفه +ووظائفها +ووظيفة +ووظيفته +ووعد +ووعدت +ووعدته +ووعدتهم +ووعدني +ووعدوا +ووعي +ووعيك +ووعيها +ووفاء +ووفائه +ووفاة +ووفاته +ووفت +ووفدوا +ووفرت +ووفرتها +ووفرنا +ووفق +ووفقا +ووفقاً +ووفقًا +ووفود +ووقائعها +ووقاحة +ووقت +ووقته +ووقع +ووقعا +ووقعت +ووقعها +ووقف +ووقفت +ووقفتم +ووقفوا +ووقوفه +ووقوفي +ووكالات +ووكالاتها +ووكالة +ووكر +وول +وولتر +وولدا +وولداه +وولدت +وولده +وولدي +وولراف +وولع +وولعت +وولف +وولونج +ووليد +ووهبني +ووهبوا +ووهج +ووهم +ووي +وويل +وويندوز +ووُفر +ووِرْد +ويأبى +ويأتون +ويأتى +ويأتي +ويأخذ +ويأخذون +ويأسفون +ويأسه +ويأكل +ويأمل +ويؤثر +ويؤخذ +ويؤخر +ويؤدى +ويؤدي +ويؤرقها +ويؤكد +ويؤكدها +ويؤلف +ويؤمن +ويؤول +ويؤيد +ويؤيده +ويا +وياسين +ويافا +ويافعاً +وياكم +وياله +وياليتها +ويامن +وياي +ويبتسم +ويبتعد +ويبث +ويبحث +ويبدأ +ويبدؤهم +ويبدع +ويبدو +ويبدي +ويبذل +ويبرز +ويبرّر +ويبشر +ويبشرنا +ويبصرني +ويبعث +ويبعد +ويبقى +ويبقي +ويبقيني +ويبكون +ويبكي +ويبنوا +ويبنون +ويبني +ويبهر +ويبهرك +ويبيعونه +ويبيعونها +ويبين +وية +ويتأخر +ويتألف +ويتأمل +ويتابع +ويتابعون +ويتاح +ويتامى +ويتبادر +ويتبادل +ويتبادلون +ويتباعد +ويتبع +ويتبينوا +ويتجاوز +ويتجدد +ويتجلى +ويتجمعون +ويتجه +ويتحاشى +ويتحتم +ويتحدث +ويتحدثون +ويتحدد +ويتحرر +ويتحرك +ويتحزم +ويتحسن +ويتحطم +ويتحقق +ويتحكم +ويتحللون +ويتحلين +ويتحمس +ويتحمل +ويتحوطون +ويتحول +ويتحولون +ويتخذ +ويتخطى +ويتخلص +ويتخلف +ويتداخل +ويتدرب +ويتدرج +ويتذكر +ويتذوق +ويترأس +ويتراءى +ويتراكم +ويتراوح +ويترجمها +ويتردد +ويترسب +ويترك +ويتركز +ويتركه +ويتركها +ويتركوا +ويتركون +ويتزاحمون +ويتزوجون +ويتساءل +ويتسارع +ويتسامرون +ويتسحب +ويتسرب +ويتسطح +ويتسع +ويتسلط +ويتسم +ويتشرّب +ويتصرفون +ويتصرّفون +ويتصف +ويتصل +ويتصور +ويتضاحكون +ويتضاعف +ويتضح +ويتضمن +ويتطاير +ويتطلب +ويتطلع +ويتطور +ويتعاطف +ويتعالى +ويتعامل +ويتعانقان +ويتعانقُ +ويتعاون +ويتعايش +ويتعبون +ويتعبّدون +ويتعدى +ويتعرض +ويتعزز +ويتعففن +ويتعلق +ويتعلم +ويتعلمون +ويتفاعل +ويتفاوت +ويتفحص +ويتفق +ويتفقون +ويتقابل +ويتقاضى +ويتقاطع +ويتقافزون +ويتقدم +ويتقرب +ويتقل +ويتقن +ويتكدس +ويتكفل +ويتكفلون +ويتكون +ويتكوّن +ويتلخص +ويتلذذ +ويتلف +ويتلقى +ويتم +ويتماسك +ويتمان +ويتماوت +ويتمتع +ويتمثل +ويتمدد +ويتمركز +ويتمنى +ويتميز +ويتميَّز +ويتناسلون +ويتناسى +ويتناقشون +ويتناول +ويتنبى +ويتنفس +ويتنفسونه +ويتنقل +ويتنقلون +ويتنوع +ويتوارى +ويتوافر +ويتوجه +ويتوسط +ويتوضأ +ويتوفرحالياً +ويتوقع +ويتوقف +ويتوقفوا +ويتولى +ويتولَّد +ويتيح +ويثبّت +ويجالند +ويجانب +ويجاهدان +ويجب +ويجتمع +ويجتهدون +ويجد +ويجدر +ويجدون +ويجدونه +ويجذبه +ويجر +ويجرجر +ويجرون +ويجرى +ويجري +ويجسد +ويجسمون +ويجعل +ويجعلن +ويجعلنا +ويجعلني +ويجعله +ويجعلها +ويجعلهم +ويجعلونها +ويجعلوها +ويجف +ويجلب +ويجلجل +ويجلس +ويجلسها +ويجلسون +ويجمع +ويجمّله +ويجنح +ويجهر +ويجود +ويجيد +ويحادثونني +ويحاذر +ويحاسبون +ويحاصر +ويحاضر +ويحاكموهم +ويحاوره +ويحاول +ويحاولون +ويحب +ويحبذها +ويحبه +ويحبها +ويحبون +ويحتاج +ويحتار +ويحتذين +ويحترم +ويحتسين +ويحتفظ +ويحتفل +ويحتكمون +ويحتل +ويحتوى +ويحتوي +ويحدث +ويحدثنا +ويحدثونك +ويحدد +ويحددون +ويحدّق +ويحرص +ويحرقون +ويحرك +ويحركُ +ويحرم +ويحرمها +ويحرمون +ويحرّك +ويحس +ويحسن +ويحصدون +ويحصر +ويحصل +ويحصلوا +ويحصلون +ويحصي +ويحضر +ويحضرني +ويحضن +ويحضونهم +ويحطم +ويحطيهم +ويحظر +ويحظى +ويحفز +ويحفظ +ويحفظون +ويحق +ويحقق +ويحك +ويحكمها +ويحكي +ويحل +ويحلق +ويحلل +ويحللها +ويحلم +ويحمل +ويحملان +ويحملن +ويحملها +ويحملون +ويحملوه +ويحمي +ويحميه +ويحول +ويحوله +ويحولها +ويحولونها +ويحوم +ويحيا +ويحيط +ويحين +ويحيى +ويحيي +ويحييهم +ويخادعها +ويخاطبوا +ويخالجها +ويخالف +ويخبر +ويخبره +ويخبرهم +ويختار +ويختتم +ويختزن +ويختزنه +ويختفي +ويختلط +ويختلف +ويختلق +ويختم +ويخدم +ويخرج +ويخرجون +ويخرجُ +ويخزن +ويخسر +ويخشى +ويخص +ويخصص +ويخطئ +ويخطب +ويخطط +ويخفض +ويخفضونها +ويخفف +ويخفي +ويخلص +ويخلف +ويخلق +ويخنقه +ويخوفونك +ويدا +ويداعبها +ويداوون +ويدخل +ويدخلوا +ويدخنون +ويدربني +ويدرس +ويدرسه +ويدرسون +ويدرك +ويدركون +ويدس +ويدعم +ويدعو +ويدعوا +ويدعون +ويدعوه +ويدعى +ويدعين +ويدفع +ويدفنون +ويدل +ويدلف +ويدمر +ويدمرون +ويدها +ويدهس +ويدهش +ويدور +ويدورون +ويدوسون +ويدون +ويدوّن +ويدي +ويدير +ويديه +ويذكر +ويذله +ويذلّل +ويذهب +ويذهبان +ويذهبن +ويذهبون +ويذوب +ويذيلها +وير +ويرأس +ويراجعها +ويراد +ويراعي +ويرافقها +ويراه +ويراها +ويراهم +ويربح +ويربط +ويربكه +ويربي +ويرتبط +ويرتبونها +ويرتدون +ويرتدي +ويرتضيه +ويرتع +ويرتعون +ويرتفع +ويرتقي +ويرث +ويرجح +ويرجع +ويرجعه +ويرجو +ويرحل +ويرد +ويردد +ويرددان +ويردّد +ويرسلها +ويرسم +ويرسمن +ويرسّب +ويرش +ويرشحها +ويرشدهُ +ويرشف +ويرشو +ويرصد +ويرضع +ويرعاه +ويرعاها +ويرعينها +ويرفض +ويرفضها +ويرفع +ويرفعون +ويرفعونها +ويرقات +ويركب +ويركبون +ويركز +ويركل +ويرمز +ويرمقني +ويرمون +ويرمي +ويروج +ويروح +ويرون +ويروى +ويروي +ويرى +ويري +ويريد +ويريدها +ويريدون +ويزحف +ويزداد +ويزرع +ويزعم +ويزعمون +ويزكيهم +ويزن +ويزهدوا +ويزور +ويزول +ويزيد +ويزيدان +ويزيده +ويزيدها +ويزيدهم +ويزيدون +ويسأل +ويسألا +ويسألني +ويسألها +ويسألهم +ويسألون +ويسارا +ويساريين +ويساعد +ويساعدني +ويساعده +ويساعدها +ويساق +ويساهم +ويساوي +ويسبب +ويست +ويستبدل +ويستبدّ +ويستبعد +ويستبيح +ويستبيحون +ويستجيب +ويستجيش +ويستحق +ويستخدم +ويستخدمه +ويستخدمها +ويستدعي +ويستذكر +ويسترجع +ويستشهدون +ويستضيف +ويستضيفان +ويستطرد +ويستطيع +ويستظل +ويستعمل +ويستعيد +ويستفز +ويستفيد +ويستقبل +ويستقبلها +ويستقبلوا +ويستقطب +ويستقى +ويستل +ويستلزم +ويستلقي +ويستمتع +ويستمتعون +ويستمد +ويستمر +ويستمعون +ويستمنستر +ويستند +ويستنكر +ويستهلكون +ويستوجب +ويستوحي +ويستوعب +ويستوعبها +ويستوقفني +ويستيقظ +ويستيقظون +ويسجل +ويسحبنها +ويسخر +ويسد +ويسدد +ويسدل +ويسر +ويسرة +ويسرت +ويسرح +ويسرق +ويسروا +ويسري +ويسطون +ويسعدني +ويسعون +ويسعى +ويسعي +ويسقط +ويسكب +ويسكنسن +ويسكونسن +ويسلبها +ويسلكن +ويسلمون +ويسمح +ويسمع +ويسمعون +ويسمونه +ويسمى +ويسمي +ويسميه +ويسميها +ويسهل +ويسهم +ويسود +ويسوقون +ويسيء +ويسيّروا +ويشار +ويشارك +ويشاركه +ويشاهد +ويشاهدها +ويشترط +ويشترك +ويشتروا +ويشتمل +ويشتمنها +ويشجع +ويشجعهم +ويشربون +ويشرح +ويشرحون +ويشرف +ويشعر +ويشعرون +ويشكر +ويشكل +ويشكله +ويشكلون +ويشكو +ويشمل +ويشن +ويشهد +ويشهداهم +ويشوه +ويشوّه +ويشوِّه +ويشيد +ويشير +ويشيرون +ويشيع +ويصاب +ويصادق +ويصافح +ويصبح +ويصبحون +ويصحبه +ويصدح +ويصدر +ويصدمون +ويصر +ويصرخ +ويصطففن +ويصعب +ويصف +ويصفق +ويصفها +ويصفون +ويصقلها +ويصل +ويصلح +ويصلني +ويصلى +ويصلي +ويصنع +ويصنعون +ويصوره +ويصوم +ويصيب +ويصيبها +ويصيخ +ويصير +ويضاعف +ويضايق +ويضبطه +ويضحك +ويضر +ويضرب +ويضطر +ويضطرب +ويضطرون +ويضطلع +ويضع +ويضعها +ويضعونها +ويضم +ويضمرون +ويضمن +ويضيء +ويضيف +ويطارده +ويطالب +ويطالبن +ويطالبنا +ويطالبون +ويطبع +ويطبعه +ويطبعون +ويطبقون +ويطرب +ويطربوا +ويطرح +ويطرحها +ويطرحون +ويطرد +ويطعمون +ويطعمونه +ويطعّم +ويطل +ويطلب +ويطلبون +ويطلق +ويطمئنهم +ويطهو +ويطور +ويطوف +ويطوّروا +ويطوّق +ويطيب +ويطير +ويطيل +ويطّرد +ويظل +ويظهر +ويعاد +ويعاني +ويعاودون +ويعاونهم +ويعبثون +ويعبر +ويعتادها +ويعتبر +ويعتبرون +ويعتدى +ويعتدي +ويعترف +ويعتزم +ويعتقد +ويعتقدون +ويعتقل +ويعتم +ويعتمد +ويعتمدون +ويعتني +ويعجب +ويعجبني +ويعجز +ويعد +ويعدد +ويعدو +ويعدون +ويعدّونهم +ويعذبني +ويعرجون +ويعرض +ويعرف +ويعرفن +ويعرفون +ويعرفَ +ويعرّضه +ويعزز +ويعزله +ويعزلها +ويعزو +ويعزى +ويعشق +ويعطـونك +ويعطل +ويعطونه +ويعطى +ويعطي +ويعطيه +ويعقب +ويعقبها +ويعكف +ويعلق +ويعلم +ويعلو +ويعلِّق +ويعمل +ويعملون +ويعنى +ويعني +ويعنيان +ويعود +ويعودوا +ويعيد +ويعيدوا +ويعيدون +ويعيش +ويعيشون +ويعينه +ويعينها +ويفاجأ +ويفاضل +ويفتتحه +ويفتتني +ويفتح +ويفتقدك +ويفجر +ويفحص +ويفر +ويفرج +ويفرح +ويفرد +ويفرض +ويفرضه +ويفرضون +ويفزعون +ويفسر +ويفشيه +ويفصلها +ويفضح +ويفضل +ويفضلون +ويفعل +ويفقد +ويفقدهم +ويفقهن +ويفكر +ويفلحان +ويفلحون +ويفهم +ويفهمها +ويفور +ويفيد +ويفيدون +ويقابل +ويقارب +ويقارن +ويقاس +ويقال +ويقام +ويقاوم +ويقبل +ويقبلها +ويقبلون +ويقتبس +ويقتتل +ويقتتلون +ويقترب +ويقترح +ويقترن +ويقتصر +ويقتضي +ويقتل +ويقتله +ويقدر +ويقدرون +ويقدم +ويقدمه +ويقدمون +ويقدنها +ويقدّر +ويقذفونه +ويقرأ +ويقرأه +ويقرأها +ويقرب +ويقرر +ويقرع +ويقرن +ويقرِّب +ويقسم +ويقسو +ويقصد +ويقصر +ويقضون +ويقضي +ويقضيها +ويقطعون +ويقطنها +ويقع +ويقف +ويقفز +ويقفون +ويقل +ويقلص +ويقلل +ويقلن +ويقلّدها +ويقود +ويقوده +ويقودهم +ويقودون +ويقول +ويقوله +ويقولون +ويقوم +ويقومون +ويقوى +ويقوّموا +ويقيد +ويقيم +ويقيه +ويك +ويكاد +ويكبد +ويكبر +ويكتب +ويكتبون +ويكتسب +ويكتشفوا +ويكتشفونه +ويكتفي +ويكتم +ويكثر +ويكذبون +ويكرر +ويكسر +ويكشف +ويكشفون +ويكفي +ويكفينا +ويكلم +ويكمل +ويكون +ويكوّن +ويلات +ويلاحظ +ويلاحظه +ويلاحقهم +ويلامس +ويلبسه +ويلبي +ويلتف +ويلتقطان +ويلتقي +ويلتمس +ويلتمسوا +ويلجأ +ويلجأوا +ويلحق +ويلخص +ويلخصان +ويلخصها +ويلز +ويلسون +ويلصق +ويلطخ +ويلعب +ويلعبان +ويلعبون +ويلف +ويلفت +ويلفظها +ويلقن +ويلقوا +ويلقون +ويلقونه +ويلقى +ويلقي +ويلكي +ويلموا +ويلنيس +ويلهب +ويلهلم +ويلهو +ويلهون +ويلوح +ويلومها +ويلون +ويلونها +ويلويها +ويلي +ويليام +ويليامز +ويليم +ويليه +ويمارس +ويمارسون +ويمازح +ويمبلدون +ويمتاز +ويمتد +ويمتصونها +ويمتلئ +ويمتلك +ويمثل +ويمثلها +ويمثلهما +ويمجد +ويمد +ويمر +ويمرّ +ويمسح +ويمسكون +ويمضي +ويمطرنا +ويمعن +ويمكن +ويمكنك +ويمكننا +ويمكنه +ويمكنها +ويمكّن +ويملأ +ويملك +ويملكهما +ويملكون +ويمنح +ويمنحه +ويمنحهم +ويمنع +ويمنعه +ويموت +ويموتون +ويميقه +ويميل +وين +ويناجيه +وينادون +ويناضل +وينال +وينبذ +وينبذها +وينبذهم +وينبع +وينبوع +وينتج +وينتحر +وينتخب +وينتربورن +وينتشر +وينتظر +وينتظروا +وينتظرون +وينتعل +وينتقد +وينتقل +وينتقم +وينتمون +وينتهك +وينتهى +وينتهي +وينجح +وينحت +وينحني +وينحون +ويندر +ويندفع +ويندمج +ويندوز +وينر +وينزل +وينساك +وينساها +وينسب +وينسبون +وينسحب +وينسلون +وينسلّ +وينسون +وينشئ +وينشد +وينشر +وينصتون +وينصح +وينضم +وينطلق +وينطوي +وينظر +وينظرون +وينظم +وينظمها +وينعكس +وينعم +وينعون +وينفتح +وينفخ +وينفي +وينقدون +وينقسم +وينقص +وينقطعون +وينقل +وينمو +وينمون +وينمي +وينهق +وينهيها +وينوي +ويه +ويهبط +ويهتضم +ويهتف +ويهتم +ويهتموا +ويهدف +ويهدفون +ويهرب +ويهرع +ويهز +ويهزلون +ويهلكها +ويهم +ويهمل +ويهملون +ويهمنا +ويهمهم +ويهمّنا +ويهندسها +ويهودية +ويواجه +ويواجهان +ويواجهنا +ويواجهون +ويوازن +ويواصل +ويوافق +ويوجد +ويوجه +ويوجهني +ويوجهها +ويوجهون +ويوحي +ويودعنا +ويورانيوم +ويورثه +ويورجنسن +ويورد +ويوسع +ويوسف +ويوسيفوس +ويوصف +ويوصلها +ويوصي +ويوصيهم +ويوضح +ويوضع +ويوفر +ويوقدونه +ويوقع +ويوم +ويومها +ويوّجه +ويَحُول +ويُترجم +ويُحكم +ويُخشى +ويُخضعها +ويُدخل +ويُذكر +ويُردُّ +ويُشترى +ويُشْرِف +ويُعرف +ويُعطى +ويُفقد +ويُلصِق +ويُمنح +ويُنسى +ويُهرِّبون +وَأُخْرِجُوا +وَأُنثَى +وَأُوذُوا +وَاللهُ +وَالَّذِينَ +وَالْمُؤْمِنَاتُ +وَالْمُؤْمِنُونَ +وَبَرة +وَجَعَلْنَاكُمْ +وَرَسُولَهُ +وَقَاتَلُوا +وَقَبَائِلَ +وَقُتِلُوا +وَقُل +وَلأُدْخِلَنَّهُمْ +وَلَج +وَلِبَاسُ +وَلِعَ +وَمَا +وَمِق +وَمِنْهُم +وَيَنْهَوْنَ +وَيُؤْتُونَ +وَيُطِيعُونَ +وَيُقِيمُونَ +وُجد +وُجدت +وُزع +وُضع +وُضعت +وُفِّق +وُلد +وُلدت +وُلدتُ +وُلدوا +وُلدِن +وُلِد +وِجاقُ +ى +ي +يأبه +يأبها +يأبى +يأت +يأتها +يأتوا +يأتون +يأتى +يأتي +يأتيك +يأتينا +يأتيني +يأتيه +يأتيها +يأجوج +يأخذ +يأخذك +يأخذن +يأخذني +يأخذه +يأخذها +يأخذهما +يأخذوا +يأخذون +يأخذونني +يأخذوني +يأسر +يأسه +يأكل +يأكلني +يأكله +يأكلها +يأكلوا +يأكلون +يأمر +يأمرني +يأمرونهم +يأمل +يأملون +يأنس +يأنف +يأوي +يأويهم +يؤبه +يؤتمن +يؤتمنَ +يؤتي +يؤتيه +يؤثر +يؤثران +يؤثرون +يؤثِّر +يؤجر +يؤجل +يؤخذ +يؤخر +يؤد +يؤدون +يؤدونها +يؤدى +يؤدي +يؤديان +يؤديه +يؤديها +يؤذن +يؤذونها +يؤذي +يؤرخ +يؤسس +يؤسسوا +يؤسف +يؤصل +يؤصّل +يؤكد +يؤكده +يؤكل +يؤلف +يؤلم +يؤلمك +يؤم +يؤمل +يؤمن +يؤمنان +يؤمنوا +يؤمنون +يؤمه +يؤمها +يؤمّن +يؤهب +يؤهل +يؤهلها +يؤهلون +يؤول +يؤيدني +يئس +يا +ياأبي +يائسا +يائسة +يابا +ياباني +يابانياً +يابانية +يابانيون +يابس +يابسة +يابسًا +يابن +يابني +يابوك +ياترى +ياته +ياجو +ياحون +ياروشاليمي +يارون +ياسر +ياسمين +ياسنت +ياسيدي +ياسين +يافا +يافعا +يافعاً +يافعة +يافعًا +يافوية +ياقة +ياقوت +ياكرام +يال +يالجين +يالطا +ياللأسف +يالله +ياله +ياما +يامن +يان +يانا +يانوس +ياه +ياوا +يباب +يبادر +يبادروا +يبادرون +يبادلني +يبارى +يباسهم +يباشروا +يباع +يباعد +يباعون +يبال +يبالي +يباهيني +يبة +يبتئس +يبتدئ +يبتدع +يبتدعه +يبتسم +يبتسمان +يبتعد +يبتعدوا +يبتكره +يبتلعني +يبتلعه +يبتلعها +يبتلعوني +يبتني +يبتهل +يبث +يبثها +يبحث +يبحثوا +يبحثون +يبحلق +يبخعها +يبد +يبدأ +يبدأوا +يبدأون +يبدؤون +يبدد +يبددون +يبدع +يبدل +يبدو +يبدوا +يبدوان +يبدوكما +يبدون +يبدى +يبدي +يبديه +يبذل +يبذله +يبذلها +يبذلون +يبر +يبرئ +يبرحه +يبرحها +يبرد +يبرر +يبرره +يبررها +يبرز +يبرزه +يبرق +يبرو +يبس +يبسط +يبشر +يبشران +يبشرون +يبصرني +يبصروا +يبصق +يبصقها +يبضن +يبطؤ +يبطل +يبطن +يبطنها +يبطّن +يبعث +يبعثها +يبعد +يبعدهما +يبعدون +يبق +يبقى +يبقي +يبقينا +يبقيه +يبقيهم +يبكون +يبكي +يبلل +يبللها +يبنوا +يبنون +يبنونها +يبنى +يبني +يبنيها +يبه +يبهت +يبهج +يبهرك +يبهرهم +يبوح +يبوس +يبيح +يبيع +يبيعني +يبيعه +يبيعون +يبين +ية +يتآخى +يتآلف +يتأبط +يتأبّطُ +يتأتى +يتأتي +يتأثر +يتأجل +يتأخر +يتأخرون +يتأرجح +يتأسس +يتأقلم +يتأكد +يتألف +يتألم +يتأمل +يتأمله +يتأملها +يتأملهم +يتأنى +يتأهب +يتئدْ +يتابع +يتابعني +يتابعها +يتابعون +يتاجر +يتاجرون +يتاح +يتامى +يتبادر +يتبادل +يتبادلان +يتبادلون +يتبارز +يتبارى +يتباهون +يتباهى +يتبحرون +يتبخر +يتبدل +يتبدى +يتبدّل +يتبع +يتبعان +يتبعنني +يتبعه +يتبعها +يتبعهم +يتبعوا +يتبعوك +يتبعونني +يتبعونها +يتبقى +يتبل +يتبلور +يتبناه +يتبناها +يتبنون +يتبنى +يتبني +يتبين +يتبينه +يتبيّن +يتتبع +يتتلمذون +يتثاءب +يتجادلون +يتجاهل +يتجاوب +يتجاور +يتجاوز +يتجاوزه +يتجاوزها +يتجاوزون +يتجدد +يتجذّر +يتجرأ +يتجرّد +يتجزأ +يتجسد +يتجشّموا +يتجعد +يتجلى +يتجلّى +يتجمد +يتجمع +يتجمل +يتجمّع +يتجنب +يتجنبن +يتجنّبوا +يتجه +يتجهون +يتجول +يتحادثان +يتحاشون +يتحاشى +يتحاور +يتحتّم +يتحدث +يتحدثان +يتحدثوا +يتحدثون +يتحدد +يتحدر +يتحدن +يتحدون +يتحدى +يتحدّثوا +يتحدّر +يتحرج +يتحرر +يتحرقون +يتحرك +يتحركان +يتحركن +يتحركون +يتحرى +يتحرّكان +يتحرّكون +يتحسر +يتحسس +يتحسسه +يتحسن +يتحصنان +يتحطم +يتحفظ +يتحقق +يتحكم +يتحلل +يتحلى +يتحمل +يتحمله +يتحملها +يتحملوا +يتحملونها +يتحمّس +يتحمَّل +يتحول +يتحولن +يتحولون +يتحوّل +يتحَدَّد +يتخاصم +يتخبطون +يتخذ +يتخذه +يتخذوا +يتخرج +يتخرجوا +يتخصص +يتخصصوا +يتخطون +يتخطى +يتخل +يتخلص +يتخلف +يتخلل +يتخللها +يتخللهما +يتخلى +يتخلّف +يتخلَّ +يتخلَّلها +يتخوفون +يتخوَّف +يتخير +يتخيل +يتداخل +يتدارك +يتداعى +يتدافعون +يتداوله +يتداولونها +يتدبر +يتدخل +يتدخلا +يتدرج +يتدفق +يتدفقون +يتدنى +يتذكر +يتذكره +يتذكرها +يتذكرهم +يتذمر +يترأس +يترأسه +يترأسها +يتراءى +يتراجع +يتراخى +يترافق +يترافقان +يتراقصون +يتراكم +يتراكمون +يتراوح +يتربص +يتربع +يتربّع +يترتب +يترجم +يترجمه +يترجمون +يتردد +يترددون +يترسب +يترفّعوا +يترك +يتركان +يتركز +يتركك +يتركني +يتركه +يتركها +يتركوا +يتركون +يتركونها +يتركوها +يترنح +يتزاحمون +يتزامن +يتزاوج +يتزايد +يتزايدون +يتزعزع +يتزعزعا +يتزعم +يتزعمها +يتزوج +يتزوجك +يتزوجها +يتزود +يتزودون +يتساءل +يتسارع +يتساقط +يتساقطون +يتساوى +يتسبب +يتسبّب +يتستر +يتسحاق +يتسرب +يتسربون +يتسرع +يتسرّب +يتسرَّب +يتسع +يتسعون +يتسقط +يتسكر +يتسكع +يتسلل +يتسلم +يتسم +يتسن +يتسنى +يتسنّى +يتشابه +يتشارك +يتشاور +يتشاوران +يتشبث +يتشبه +يتشخّص +يتشدد +يتشدقون +يتشرب +يتشرف +يتشكل +يتشكّل +يتشممن +يتصارع +يتصاعد +يتصبب +يتصدر +يتصدعا +يتصدى +يتصرف +يتصرفون +يتصرّفون +يتصف +يتصفح +يتصفون +يتصل +يتصلون +يتصنع +يتصور +يتصوره +يتصورون +يتضاءل +يتضاعف +يتضاعفت +يتضايقون +يتضجر +يتضح +يتضخم +يتضرع +يتضمن +يتضمنه +يتضمنها +يتضمّن +يتضمَّن +يتطابق +يتطابقان +يتطاير +يتطب +يتطرق +يتطلب +يتطلبه +يتطلع +يتطلعن +يتطلعون +يتطلّب +يتطلّعُ +يتطلَّع +يتطلَّعون +يتطور +يتطورضيق +يتطوروا +يتطورون +يتطوّع +يتظاهر +يتعارض +يتعارف +يتعاطاه +يتعاطفوا +يتعاطفون +يتعاطون +يتعاطى +يتعاطين +يتعاظم +يتعاقد +يتعامل +يتعاملون +يتعاون +يتعاونا +يتعاونوا +يتعايش +يتعب +يتعبون +يتعتعوا +يتعثر +يتعجب +يتعداه +يتعداها +يتعداهم +يتعدد +يتعدى +يتعدّى +يتعدَّى +يتعذب +يتعذر +يتعرض +يتعرضن +يتعرضوا +يتعرضون +يتعرف +يتعرفن +يتعرفوا +يتعرّضون +يتعرّفون +يتعرَّض +يتعفن +يتعلق +يتعلقون +يتعلم +يتعلمه +يتعلمها +يتعلموا +يتعلمون +يتعلمونه +يتعلّق +يتعلّم +يتعلّمها +يتعلَّمْنَ +يتعمدون +يتعمق +يتعمّد +يتعود +يتعوذ +يتعين +يتفاجأ +يتفادى +يتفاعل +يتفاعلا +يتفاعلوا +يتفاقم +يتفاوت +يتفتت +يتفتق +يتفجر +يتفحصها +يتفحم +يتفرع +يتفرقون +يتفرّع +يتفصد +يتفضل +يتفق +يتفقد +يتفقهن +يتفقون +يتفكرون +يتفكه +يتفنن +يتفهم +يتفهمها +يتفوقون +يتفوهُ +يتفيئون +يتقاتلون +يتقارب +يتقاسم +يتقاضاه +يتقاضون +يتقاضى +يتقاطع +يتقاعد +يتقبل +يتقبلها +يتقدم +يتقدمنا +يتقدمه +يتقدمها +يتقدمهم +يتقدمون +يتقدّم +يتقصون +يتقلب +يتقلص +يتقن +يتقنها +يتقنون +يتقوقع +يتقيأ +يتقيد +يتقين +يتكئ +يتكاتفن +يتكاثر +يتكتم +يتكدر +يتكدّسون +يتكرر +يتكسّر +يتكشف +يتكفن +يتكلم +يتكلمان +يتكلمها +يتكون +يتكونان +يتلألأ +يتلاءم +يتلاشى +يتلاعب +يتلبث +يتلخص +يتلذذ +يتلصصون +يتلفت +يتلقاها +يتلقون +يتلقى +يتلقيان +يتلمس +يتلمّسون +يتلو +يتلونون +يتلوه +يتلوّن +يتم +يتمادون +يتمادى +يتماشى +يتمالك +يتماوج +يتمتع +يتمتعن +يتمتعون +يتمتم +يتمثل +يتمثلها +يتمثلون +يتمحور +يتمخض +يتمدد +يتمرأى +يتمزق +يتمسك +يتمكن +يتمكنوا +يتمكنون +يتمكّن +يتملق +يتملكني +يتملّكه +يتملَّى +يتمم +يتمناه +يتمنون +يتمنى +يتمنّى +يتموج +يتميز +يتميزان +يتميزون +يتميّز +يتمّ +يتناثر +يتناجيان +يتنازعني +يتنازل +يتنازلون +يتناساها +يتناسب +يتنافس +يتنافسون +يتنافى +يتناقشون +يتناقض +يتناقل +يتناقله +يتناقلها +يتنامى +يتناهى +يتناوب +يتناول +يتناولن +يتناوله +يتناولها +يتناولهما +يتناولون +يتناولونه +يتنبه +يتنبهون +يتنبَّأ +يتنزل +يتنزه +يتنصل +يتنفذ +يتنفس +يتنفسه +يتنفسها +يتنفسون +يتنقل +يتنقلون +يتنكر +يتنهد +يتهادى +يتهامسون +يتهاوى +يتهدد +يتهددها +يتهددهم +يتهم +يتهمنا +يتهمهم +يتهيأ +يتواءم +يتوارثها +يتوارى +يتواصل +يتواطأ +يتوافد +يتوافدون +يتوافر +يتوافق +يتوالد +يتوالى +يتوانيا +يتوثب +يتوج +يتوجب +يتوجه +يتوجهوا +يتوجهون +يتوجّب +يتوجَّه +يتوحد +يتوخاها +يتوخون +يتوخى +يتوخي +يتوذم +يتورط +يتوزع +يتوسد +يتوسدن +يتوسط +يتوسع +يتوسل +يتوسلن +يتوسلني +يتوسلها +يتوسلون +يتوصل +يتوصلوا +يتوضأون +يتوضّع +يتوفر +يتوقع +يتوقعا +يتوقعها +يتوقعوا +يتوقعون +يتوقف +يتوقفن +يتوقفوا +يتوكأ +يتولاه +يتولد +يتولى +يتولي +يتوّهمون +يتيبس +يتيح +يتيحه +يتيحها +يتيسر +يتيقن +يتيم +يتيما +يتيمة +يتيمًا +يتّبعوا +يتَّهمه +يثار +يثبت +يثبته +يثبتها +يثبتوا +يثبّتون +يثبِّط +يثر +يثق +يثقف +يثقلها +يثلب +يثني +يثور +يثير +يثيرها +يثيرون +يثْنها +يجادل +يجارى +يجامل +يجانبها +يجاهد +يجاور +يجاورونها +يجاوز +يجب +يجبر +يجبرون +يجبها +يجبُ +يجبّ +يجتاح +يجتاحنا +يجتاحني +يجتاحه +يجتاحهم +يجتاحون +يجتاز +يجتث +يجتذب +يجتذبها +يجتمع +يجتمعان +يجتمعون +يجثو +يجد +يجدا +يجداه +يجدد +يجددان +يجدر +يجدلها +يجدني +يجده +يجدها +يجدهم +يجدوا +يجدون +يجدونه +يجدونها +يجدوها +يجدي +يجدّ +يجدُّ +يجذب +يجذبني +يجر +يجرؤ +يجرب +يجربوا +يجرع +يجرفه +يجرفها +يجرنا +يجرون +يجرونها +يجرى +يجري +يجريان +يجريها +يجرِ +يجرّ +يجرّه +يجزع +يجزم +يجزي +يجسد +يجسده +يجسّد +يجعل +يجعلك +يجعلنا +يجعلني +يجعله +يجعلها +يجعلهم +يجعلونها +يجعلُ +يجف +يجفل +يجلب +يجلبها +يجلبونها +يجلد +يجلس +يجلسون +يجمع +يجمعنا +يجمعه +يجمعها +يجمعهم +يجمعون +يجمّلها +يجن +يجنب +يجنح +يجنون +يجني +يجنّدونهم +يجهد +يجهش +يجهضه +يجهل +يجهلن +يجهله +يجهلون +يجوب +يجوبون +يجوز +يجول +يجيء +يجيئ +يجيئون +يجيئونه +يجيب +يجيبان +يجيبك +يجيد +يجيدها +يجيدوا +يجيدون +يجيدُ +يجيش +يجيى +يجِيْبَنّه +يحابي +يحاذي +يحارب +يحاسبه +يحاسبها +يحاصرها +يحاصرونه +يحاضر +يحاط +يحافظ +يحافظوا +يحافظون +يحاكي +يحال +يحالفهم +يحاور +يحاوره +يحاورها +يحاول +يحاولان +يحاولوا +يحاولون +يحب +يحبحب +يحبذ +يحبذها +يحبس +يحبسوا +يحبط +يحبل +يحبني +يحبه +يحبها +يحبو +يحبون +يحبونه +يحبّها +يحتا +يحتاج +يحتاجانه +يحتاجها +يحتاجون +يحتاجونه +يحتار +يحتاروا +يحتارون +يحتاطوا +يحتدم +يحتذى +يحتذي +يحترف +يحترق +يحترقون +يحترم +يحترمون +يحتسون +يحتشد +يحتضن +يحتضنه +يحتضنها +يحتفظ +يحتفظوا +يحتفظون +يحتفل +يحتفلون +يحتقرهم +يحتكر +يحتكرون +يحتل +يحتلان +يحتلها +يحتم +يحتمل +يحتمي +يحتميان +يحتوى +يحتوي +يحتويان +يحتويه +يحتويها +يحتِّم +يحث +يحثه +يحثها +يحثون +يحثّ +يحج +يحجب +يحجز +يحجزون +يحجل +يحجم +يحجمون +يحجوا +يحجون +يحد +يحدث +يحدثك +يحدثنا +يحدثني +يحدثه +يحدثها +يحدثوا +يحدثون +يحدثونك +يحدد +يحددك +يحدده +يحددها +يحددون +يحدق +يحدها +يحدُث +يحدّ +يحدّث +يحدّثني +يحدّد +يحدّق +يحذر +يحذرني +يحذرونني +يحذف +يحذوا +يحذّر +يحرث +يحرثه +يحرز +يحرزه +يحرزون +يحرسون +يحرص +يحرصان +يحرصن +يحرصون +يحرض +يحرضها +يحرق +يحرك +يحركا +يحركه +يحركها +يحركُ +يحرم +يحرمهم +يحرّض +يحرّك +يحرّكه +يحزن +يحزنني +يحزّ +يحس +يحسبوا +يحسبون +يحسد +يحسدنا +يحسده +يحسدهم +يحسدون +يحسكم +يحسم +يحسن +يحسنون +يحسوا +يحسّنه +يحسّها +يحشد +يحصد +يحصدها +يحصرون +يحصل +يحصلوا +يحصلون +يحصى +يحضر +يحضرن +يحضرني +يحضره +يحضرها +يحضروا +يحضرون +يحضن +يحضّرون +يحط +يحطم +يحظ +يحظر +يحظون +يحظى +يحظيان +يحـتوى +يحـــددهما +يحـقق +يحفر +يحفرون +يحفز +يحفظ +يحفظك +يحفظن +يحفظها +يحفظون +يحفل +يحفِّز +يحق +يحقق +يحققا +يحققه +يحققها +يحققوا +يحققون +يحكم +يحكمه +يحكمها +يحكمهم +يحكمون +يحكه +يحكى +يحكي +يحكُّ +يحل +يحلق +يحلقان +يحلقَ +يحلل +يحلم +يحلمُ +يحلو +يحلُم +يحلّ +يحلّق +يحم +يحمر +يحمل +يحملان +يحملق +يحملن +يحملني +يحمله +يحملها +يحملهم +يحملهما +يحملون +يحملونه +يحملونها +يحملوني +يحمها +يحمي +يحمينا +يحميه +يحميها +يحمّل +يحن +يحني +يحورها +يحوزها +يحوطه +يحول +يحولك +يحولنا +يحولها +يحولوا +يحومان +يحوى +يحوي +يحويه +يحوّل +يحوّلها +يحيا +يحياه +يحيد +يحير +يحيرك +يحيرني +يحيط +يحيطنا +يحيطني +يحيطها +يحيطون +يحيق +يحيل +يحين +يحيه +يحيون +يحيونها +يحيى +يحيي +يحييها +يخاتل +يخاطب +يخاطبني +يخاطبه +يخاطبهم +يخاطبون +يخاطر +يخاف +يخافون +يخال +يخالط +يخالف +يخالفها +يخامرني +يخب +يخبئ +يخبر +يخبرنا +يخبره +يخبرها +يخبرونه +يخبو +يخت +يختار +يختارك +يختارها +يختاروا +يختارون +يختارونه +يختارونها +يختال +يختبئ +يختبر +يختتم +يخترع +يخترق +يخترقه +يخترقون +يختزل +يختزله +يختص +يختصر +يختطف +يختف +يختفي +يختل +يختلج +يختلس +يختلسون +يختلط +يختلف +يختلفان +يختلفون +يختلق +يختلي +يختليان +يختم +يختنق +يخته +يخجل +يخجلني +يخدرهم +يخدع +يخدم +يخذل +يخر +يخرب +يخرج +يخرجه +يخرجوا +يخرجون +يخرس +يخرف +يخرقه +يخرَّ +يخزن +يخزنان +يخسر +يخسره +يخسرونها +يخشاه +يخشاها +يخشاهم +يخشـى +يخشون +يخشى +يخص +يخصص +يخصني +يخصّ +يخصُّ +يخضع +يخضعا +يخضعون +يخط +يخطئ +يخطئون +يخطب +يخطبون +يخطر +يخطط +يخططون +يخطف +يخطه +يخطو +يخـلو +يخف +يخفت +يخفض +يخفضا +يخفضان +يخفف +يخففون +يخفق +يخفوا +يخفى +يخفي +يخفيه +يخفيها +يخل +يخلب +يخلد +يخلدون +يخلص +يخلصنا +يخلصها +يخلط +يخلطون +يخلع +يخلعني +يخلف +يخلفه +يخلق +يخلو +يخلوا +يخلّص +يخنق +يخنقني +يخوص +يخوض +يخوضه +يخوضها +يخيب +يخيفني +يخيفها +يخيل +يخيم +يخيّروه +يخيّل +يد +يدأب +يدا +يداخلها +يدار +يداعب +يداعبها +يدافع +يدافعوا +يدافعون +يدانيه +يداه +يداها +يداهمهم +يداوي +يداي +يداً +يدب +يدة +يدحض +يدخل +يدخله +يدخلها +يدخلوا +يدخلون +يدخن +يدخنون +يدر +يدرأ +يدرب +يدربن +يدربني +يدرج +يدرس +يدرسن +يدرسني +يدرسها +يدرسوا +يدرسون +يدرسوه +يدرك +يدركوا +يدركون +يدرون +يدري +يدرّس +يدرِّس +يدس +يدسون +يدسونه +يدش +يدشنها +يدع +يدعم +يدعمه +يدعني +يدعو +يدعوك +يدعون +يدعونا +يدعوني +يدعوه +يدعوهم +يدعى +يدعي +يدعيها +يدفع +يدفعا +يدفعكِ +يدفعنا +يدفعني +يدفعه +يدفعها +يدفعهم +يدفعون +يدفعوننا +يدفن +يدفنون +يدق +يدقق +يدك +يدل +يدلف +يدلك +يدلل +يدلها +يدلي +يدلّ +يدمر +يدمرونها +يدمي +يده +يدها +يدهشك +يدهشنا +يدهشني +يدهشه +يدهم +يدور +يدورون +يدوس +يدوسها +يدوم +يدوي +يدويا +يدوياً +يدوية +يدى +يدي +يدير +يديره +يديرها +يديرون +يديعوت +يديك +يدين +يدينون +يديه +يديها +يديّ +يدٌ +يدّعون +يدّعي +يدَّخره +يدَّخرون +يذاع +يذاكر +يذبح +يذبل +يذرع +يذرعه +يذق +يذكر +يذكرك +يذكرنا +يذكرني +يذكره +يذكرها +يذكرهم +يذكرون +يذكّرها +يذنبون +يذهب +يذهبوا +يذهبون +يذوب +يذودون +يذوق +يذيبون +ير +يرأس +يرأسني +يرأسها +يراجع +يراجعون +يراد +يراسل +يراسلها +يراعي +يرافق +يرافقنا +يرافقني +يرافقه +يرافقها +يراقب +يراقبان +يراقبهم +يراقبهما +يراك +يرام +يرانا +يراني +يراه +يراها +يراهم +يراهما +يراهن +يراود +يراودَ +يربض +يربط +يربطانهما +يربطني +يربطه +يربطها +يربطهم +يربطون +يربك +يربو +يربي +يرتاح +يرتاد +يرتاده +يرتادها +يرتادون +يرتب +يرتبط +يرتبون +يرتج +يرتجف +يرتجفان +يرتحل +يرتد +يرتدع +يرتدون +يرتدونه +يرتدى +يرتدي +يرتدين +يرتديه +يرتديها +يرتسم +يرتشف +يرتشفون +يرتضي +يرتضيه +يرتع +يرتعد +يرتعدْ +يرتعش +يرتفع +يرتق +يرتكبها +يرتكبون +يرتكز +يرتل +يرتلان +يرتوي +يرث +يرثى +يرج +يرجح +يرجع +يرجف +يرجمهم +يرجو +يرجونه +يرجوه +يرحب +يرحل +يرحلون +يرحم +يرحمنا +يرحمه +يرد +يردد +يرددها +يرددون +يردعها +يردعهم +يردن +يردها +يردوا +يردون +يردّدها +يردّني +يرزحون +يرزق +يرسخ +يرسل +يرسلاني +يرسلك +يرسله +يرسلها +يرسلوا +يرسلون +يرسلونه +يرسم +يرسمها +يرسو +يرش +يرشح +يرشحها +يرشحوني +يرشدني +يرشده +يرشدهم +يرشدون +يرصد +يرصدها +يرصع +يرض +يرضعن +يرضون +يرضى +يرضي +يرضيني +يرضيه +يرع +يرعاني +يرعى +يرفده +يرفرف +يرفض +يرفضن +يرفضه +يرفضها +يرفضون +يرفع +يرفعه +يرفعها +يرفعهم +يرفعوا +يرفعون +يرفعوهم +يرفل +يرفلن +يرق +يرقات +يرقبك +يرقبونه +يرقد +يرقص +يرقى +يركب +يركبني +يركبها +يركبون +يركبونه +يركز +يركزون +يركض +يركّز +يرم +يرمز +يرمزان +يرمي +يرميه +يرميها +يرنّ +يره +يرها +يرهب +يرهقني +يرو +يروج +يروحون +يروضني +يروضه +يروعني +يروق +يروقها +يرون +يرونني +يرونه +يرونها +يروه +يروها +يروونها +يروي +يرويني +يرويه +يرويها +يروّج +يروِّضونه +يرى +يري +يريد +يريدك +يريدني +يريده +يريدها +يريدون +يريدونه +يزاد +يزال +يزالون +يزبد +يزبك +يزجرها +يزحف +يزحفان +يزحمهم +يزخر +يزد +يزداد +يزدادون +يزدحم +يزده +يزدها +يزدهر +يزرع +يزرعه +يزرعون +يزرعونها +يزرها +يزعج +يزعجني +يزعجها +يزعق +يزعل +يزعم +يزعمه +يزعمون +يزقزق +يزقن +يزل +يزلزل +يزمجر +يزن +يزنر +يزها +يزوجها +يزود +يزور +يزورنا +يزورني +يزوره +يزورهما +يزورون +يزول +يزوّد +يزيح +يزيحه +يزيد +يزيدني +يزيدها +يزيدون +يزيل +يزين +يزينه +يزينوا +يزيّن +يس +يسأل +يسألنا +يسأله +يسألها +يسألهما +يسألون +يسألونني +يسألونها +يساء +يسائل +يسار +يسارا +يساراً +يسارع +يساره +يساري +يساريا +يسارياً +يساريًا +يساعد +يساعدك +يساعدني +يساعده +يساعدها +يساعدهم +يساعدون +يسافر +يسافرون +يساق +يسامر +يساندها +يساهم +يساوى +يساوي +يساير +يسبب +يسببه +يسببها +يسببوا +يسبح +يسبحون +يسبق +يسبقني +يسبقها +يسبقهما +يسبّ +يستأثر +يستأجر +يستأجرن +يستأسرون +يستأصلون +يستأنس +يستأهل +يستبدل +يستبشر +يستبطن +يستبعد +يستبعدوا +يستتب +يستتبع +يستثمر +يستثن +يستثني +يستجب +يستجد +يستجمع +يستجوبه +يستجيب +يستحب +يستحبه +يستحث +يستحدث +يستحضر +يستحق +يستحقه +يستحقها +يستحم +يستحوذ +يستحيل +يستخد +يستخدم +يستخدمان +يستخدمن +يستخدمنها +يستخدمه +يستخدمها +يستخدموا +يستخدمون +يستخدمونه +يستخدمونها +يستخرج +يستخلص +يستدرجها +يستدرك +يستدعي +يستدل +يستدير +يستذكر +يستذكرون +يستر +يسترجع +يسترد +يستردفها +يستردّ +يستردُّ +يسترسل +يسترضون +يسترضي +يسترها +يستريثوك +يستريح +يستريحوا +يستريحون +يستزلم +يستزيدونني +يستسلم +يستسلمون +يستسهل +يستشعر +يستشعرون +يستشفها +يستشهد +يستشير +يستشيروا +يستصرخ +يستصرخكم +يستطرد +يستطع +يستطعن +يستطلع +يستطيع +يستطيعه +يستطيعوا +يستطيعون +يستطيعُ +يستظل +يستعجل +يستعد +يستعدون +يستعرض +يستعرضها +يستعطف +يستعطون +يستعمل +يستعملها +يستعملون +يستعملونه +يستعيد +يستعير +يستعيرون +يستعين +يستفاد +يستفد +يستفز +يستفزني +يستفزها +يستفسر +يستفيد +يستفيدون +يستقبل +يستقبلنا +يستقبلني +يستقبله +يستقبلها +يستقبلهم +يستقبلون +يستقر +يستقصي +يستقطب +يستقطع +يستقل +يستقلّ +يستكتبه +يستكثر +يستكره +يستكمل +يستكملها +يستكملون +يستلب +يستلزم +يستلقي +يستمتع +يستمتعان +يستمتعون +يستمد +يستمدّ +يستمر +يستمطرها +يستمع +يستمهلني +يستنبط +يستنتج +يستنجد +يستنجدني +يستند +يستنسخ +يستنشق +يستنشقهم +يستنصرهم +يستنطق +يستنفر +يستنيرون +يستهان +يستهدف +يستهل +يستهلك +يستهلكه +يستهلكون +يستهله +يستهوي +يستهويكم +يستهويني +يستوجب +يستورده +يستوطن +يستوطنه +يستوطنوا +يستوعب +يستوعبوا +يستوقف +يستوقفك +يستوقفه +يستولون +يستولي +يستيقظ +يستيقظا +يستيقظوا +يستيقظون +يسجل +يسجلا +يسجن +يسحب +يسخر +يسخرون +يسخن +يسخنون +يسدد +يسدل +يسدى +يسدّ +يسر +يسرا +يسرد +يسرع +يسرق +يسرقنا +يسرقها +يسرقون +يسرنى +يسروا +يسري +يسرُّ +يسطر +يسع +يسعد +يسعدني +يسعف +يسعفه +يسعك +يسعنا +يسعني +يسعها +يسعون +يسعى +يسفر +يسقط +يسقطون +يسقي +يسقيها +يسكب +يسكت +يسكر +يسكن +يسكنني +يسكنه +يسكنها +يسكنوا +يسكنون +يسكنونه +يسلبها +يسلقني +يسلكون +يسلم +يسلمك +يسلمني +يسلمه +يسلمها +يسمح +يسمحوا +يسمحون +يسمع +يسمعان +يسمعك +يسمعني +يسمعه +يسمعون +يسمعونك +يسمعونها +يسمو +يسمون +يسمونه +يسمونها +يسمى +يسمي +يسميه +يسميها +يسمّون +يسمّونني +يسمّى +يسمّيه +يسمَّى +يسند +يسهب +يسهر +يسهرون +يسهل +يسهم +يسهمون +يسهّل +يسوء +يسود +يسودها +يسوع +يسوق +يسوقون +يسومني +يسيء +يسيئون +يسيج +يسير +يسيراً +يسيرة +يسيرون +يسيطر +يسيل +يسيىء +يسيّر +يسّر +يشأ +يشاء +يشاؤها +يشابه +يشار +يشارك +يشاركان +يشاركن +يشاركنا +يشاركني +يشاركه +يشاركها +يشاركهم +يشاركهما +يشاركون +يشاركونهم +يشاركوني +يشاع +يشاهد +يشاهدن +يشاهده +يشاهدها +يشاهدون +يشاهدوه +يشب +يشبع +يشبه +يشبهان +يشبهني +يشبهه +يشتبك +يشتد +يشترط +يشترك +يشتركا +يشتركان +يشتركون +يشترون +يشتري +يشترين +يشتريها +يشتعل +يشتكي +يشتكين +يشتم +يشتمل +يشتملان +يشتهر +يشتهي +يشجع +يشجعه +يشجعوا +يشجعوه +يشحذ +يشخب +يشخر +يشخص +يشخّصوا +يشد +يشدد +يشدني +يشدونْ +يشدّك +يشدّني +يشر +يشرب +يشربها +يشربون +يشرح +يشرحه +يشرخ +يشرد +يشرع +يشرف +يشرفون +يشرق +يشرك +يشع +يشعر +يشعرا +يشعرك +يشعرنا +يشعرها +يشعروا +يشعرون +يشعلها +يشفه +يشفى +يشفي +يشفيه +يشق +يشك +يشكره +يشكل +يشكلان +يشكلها +يشكلون +يشكو +يشكون +يشكّل +يشكّلون +يشكَّل +يشكِّل +يشم +يشمر +يشمل +يشمله +يشملها +يشمها +يشنها +يشنّون +يشه +يشهد +يشهدان +يشهده +يشهدها +يشوبه +يشوبها +يشوفه +يشوه +يشوهها +يشوهون +يشي +يشيد +يشيدون +يشير +يشيران +يشيروا +يشيش +يشيع +يشيعون +يشينه +يشيّء +يصاب +يصابوا +يصابون +يصاحب +يصاحبني +يصاحبه +يصادر +يصادف +يصادفها +يصار +يصارع +يصارعان +يصافحه +يصب +يصبح +يصبحوا +يصبحون +يصبر +يصبرون +يصبّ +يصح +يصحبنا +يصحبننا +يصحبه +يصحو +يصدأ +يصدح +يصدر +يصدرها +يصدق +يصدقها +يصدقون +يصدم +يصده +يصدّق +يصدّقها +يصر +يصرحون +يصرخ +يصرخن +يصرخون +يصررن +يصرف +يصرفنا +يصرفه +يصرّ +يصرّفه +يصرّون +يصطاد +يصطادني +يصطادها +يصطحب +يصطحبنا +يصطحبون +يصطدم +يصطف +يصطفون +يصعب +يصعد +يصعدها +يصعدون +يصعق +يصعّد +يصف +يصفر +يصفعني +يصفق +يصفقون +يصفه +يصفها +يصفهن +يصفون +يصفونه +يصك +يصل +يصلا +يصلح +يصلنا +يصله +يصلها +يصلوا +يصلون +يصلي +يصمت +يصمد +يصمم +يصنع +يصنعها +يصنعون +يصنف +يصنفها +يصور +يصورك +يصوره +يصورها +يصوّره +يصيب +يصيبه +يصيبها +يصيبهم +يصيبوها +يصيح +يصيحون +يصيخ +يصير +يصيروا +يضاء +يضاد +يضارعها +يضاف +يضاهى +يضاهي +يضاهيها +يضايق +يضايقك +يضايقني +يضايقهم +يضبط +يضبطها +يضجر +يضح +يضحك +يضحكوا +يضحكون +يضحى +يضحي +يضر +يضرب +يضربني +يضربه +يضربها +يضربوا +يضربون +يضره +يضروك +يضرّ +يضطر +يضطرب +يضطلع +يضع +يضعف +يضعن +يضعه +يضعها +يضعهما +يضعون +يضفي +يضلل +يضللنّ +يضم +يضمان +يضمر +يضمن +يضمنها +يضمها +يضمهم +يضن +يضنّ +يضيء +يضيئون +يضيرنا +يضيع +يضيعه +يضيعوا +يضيف +يضيفه +يضيفون +يضيق +يضيقون +يطابق +يطارد +يطارده +يطاردها +يطاردون +يطاردونه +يطاردونها +يطاق +يطال +يطالب +يطالبني +يطالبه +يطالبها +يطالبهم +يطالبهما +يطالبون +يطالبونني +يطالع +يطالعون +يطاوعه +يطاوله +يطبخون +يطبع +يطبعها +يطبعون +يطبق +يطبّقه +يطرأ +يطرب +يطربنا +يطرح +يطرحا +يطرحه +يطرحون +يطرز +يطرق +يطرّد +يطعم +يطعمهم +يطفأ +يطفئها +يطفح +يطفو +يطفيها +يطل +يطلان +يطلب +يطلبه +يطلبها +يطلبوا +يطلبون +يطلبونها +يطلع +يطلعنا +يطلعني +يطلعونه +يطلق +يطلقن +يطلقه +يطلقها +يطلقون +يطلون +يطمئن +يطمح +يطمحون +يطمس +يطمع +يطهره +يطهم +يطوح +يطور +يطوروا +يطوعن +يطوف +يطوفوا +يطوق +يطول +يطوّر +يطوّرون +يطير +يطيق +يظـهر +يظفر +يظل +يظلم +يظلوا +يظلون +يظلّ +يظن +يظنه +يظنهم +يظنون +يظنّن +يظهر +يظهران +يظهرن +يظهرها +يظهروا +يظهرون +يظهرَ +يعاجله +يعاجلها +يعاد +يعادل +يعادله +يعادلها +يعارض +يعارضونه +يعاشر +يعاقب +يعاقبهم +يعالج +يعالجه +يعالجها +يعامل +يعامله +يعاملهم +يعاملوننا +يعاملونه +يعامَل +يعانون +يعانونه +يعانى +يعاني +يعانيه +يعانيها +يعاود +يعاونها +يعبأ +يعبئهم +يعبث +يعبدها +يعبر +يعبق +يعبّر +يعبّرون +يعتاد +يعتادوا +يعتبر +يعتبران +يعتبره +يعتبرها +يعتبرهم +يعتبرون +يعتد +يعتدل +يعتدي +يعتذر +يعترض +يعترضه +يعترضهم +يعترف +يعترفون +يعتريها +يعتز +يعتزلها +يعتزم +يعتزمه +يعتزون +يعتقد +يعتقدون +يعتقل +يعتكف +يعتلي +يعتليه +يعتم +يعتمد +يعتمدان +يعتمدن +يعتمدون +يعتمرون +يعتنون +يعتني +يعتنين +يعتورها +يعثر +يعثروا +يعج +يعجب +يعجبك +يعجبني +يعجبه +يعجبون +يعجز +يعجزون +يعجل +يعجن +يعجّ +يعد +يعدان +يعدد +يعدل +يعدلها +يعدم +يعدنا +يعدها +يعدو +يعدون +يعدونهم +يعدّ +يعدَّ +يعدُّ +يعدُّون +يعذب +يعر +يعرب +يعرج +يعرض +يعرضان +يعرضه +يعرضها +يعرضهم +يعرضهما +يعرضون +يعرف +يعرفكم +يعرفنا +يعرفنها +يعرفني +يعرفه +يعرفها +يعرفهم +يعرفوا +يعرفون +يعرفونني +يعرفونه +يعرفونها +يعرقل +يعرّض +يعرّف +يعزز +يعزف +يعزفه +يعزفها +يعزفون +يعزل +يعزّز +يعزّزون +يعزّيني +يعش +يعشق +يعشقها +يعشقون +يعشن +يعشى +يعصف +يعصمهم +يعض +يعضد +يعط +يعطل +يعطه +يعطهم +يعطون +يعطونه +يعطوه +يعطى +يعطي +يعطيك +يعطين +يعطينا +يعطيني +يعطيه +يعطيها +يعطّلني +يعفو +يعفى +يعفي +يعفيهم +يعقب +يعقبه +يعقد +يعقل +يعقوب +يعكر +يعكس +يعكسه +يعكف +يعكفان +يعكفون +يعلق +يعلم +يعلمان +يعلمن +يعلمني +يعلمه +يعلمها +يعلمهم +يعلمون +يعلن +يعلنها +يعلو +يعلوه +يعلوها +يعلي +يعلّق +يعم +يعمد +يعمق +يعمل +يعملا +يعملان +يعملوا +يعملون +يعمون +يعمي +يعن +يعند +يعنون +يعنى +يعني +يعنيان +يعنيك +يعنيكم +يعنينا +يعنيني +يعنيه +يعنيهم +يعهد +يعوا +يعود +يعودا +يعودوا +يعودون +يعوزها +يعوض +يعوق +يعول +يعولهم +يعوم +يعوّل +يعوِّض +يعوِّل +يعي +يعيبها +يعيث +يعيثون +يعيد +يعيدنا +يعيدني +يعيدها +يعيدوا +يعيدون +يعيدوها +يعيرها +يعيش +يعيشان +يعيشه +يعيشها +يعيشوا +يعيشون +يعيـــش +يعيق +يعيقه +يعين +يعينه +يعينها +يعينهم +يعينهما +يعّرف +يعْتَقَد +يـحقّق +يــعرف +يـــكون +يــكاد +يفاجأ +يفاجئ +يفاجئنا +يفاجئه +يفاخر +يفارقنا +يفارقني +يفارقه +يفاعتي +يفتؤ +يفتتح +يفتح +يفتحه +يفتحون +يفتحونها +يفتخر +يفترس +يفترض +يفترقان +يفتش +يفتشوا +يفتقد +يفتقدون +يفتقدونه +يفتقر +يفتقرون +يفتك +يفجر +يفحص +يفحصها +يفخر +يفد +يفدون +يفر +يفرج +يفرح +يفرحه +يفرد +يفرز +يفرزه +يفرض +يفرضه +يفرضون +يفرط +يفرق +يفرقها +يفرّج +يفرّط +يفرّق +يفز +يفسح +يفسد +يفسدان +يفسدون +يفسدونه +يفسر +يفسره +يفسّر +يفشل +يفشيها +يفصح +يفصل +يفصلنا +يفصلهما +يفصلوا +يفصلون +يفضح +يفضل +يفضلها +يفضلون +يفضي +يفضّلون +يفضِّل +يفطر +يفعل +يفعلان +يفعلن +يفعله +يفعلها +يفعلوا +يفعلون +يفقد +يفقدك +يفقدنا +يفقدني +يفقده +يفقدها +يفقدوا +يفقدون +يفقدُ +يفقس +يفقهوا +يفك +يفكر +يفكروا +يفكرون +يفلت +يفلح +يفلحوا +يفلحون +يفنى +يفنّد +يفهم +يفهمنا +يفهمني +يفهمه +يفهمها +يفهموا +يفهموننا +يفهمونها +يفوت +يفوتك +يفوتنا +يفوته +يفوز +يفوق +يفوقها +يفون +يفي +يفيد +يفيدها +يفيدوا +يفيض +يفيها +يق +يقأقئ +يقابل +يقابلني +يقابله +يقابلها +يقابلهم +يقاتل +يقارب +يقاربونه +يقارن +يقاس +يقاسمه +يقاسين +يقال +يقام +يقاوم +يقاومه +يقبض +يقبع +يقبل +يقبلان +يقبلها +يقبلوا +يقبلون +يقتبس +يقتحم +يقتدي +يقترب +يقتربان +يقتربون +يقترح +يقترحها +يقترحون +يقترن +يقتسم +يقتسموا +يقتسمون +يقتصر +يقتضي +يقتطع +يقتطعون +يقتفي +يقتل +يقتلع +يقتلعهم +يقتلك +يقتلني +يقتلها +يقتلهم +يقتلوا +يقتلون +يقتلونني +يقتنصون +يقتنع +يقتنعوا +يقدح +يقدر +يقدره +يقدرها +يقدروا +يقدرونها +يقدس +يقدم +يقدمن +يقدمه +يقدمها +يقدموا +يقدمون +يقدّر +يقدّم +يقدّمها +يقذف +يقر +يقرءون +يقرأ +يقرأه +يقرأها +يقرأوا +يقرأون +يقرؤه +يقرؤها +يقرئك +يقرب +يقرر +يقرع +يقرعه +يقرعون +يقرقر +يقره +يقرَّ +يقسم +يقسو +يقص +يقصد +يقصده +يقصدها +يقصدون +يقصدونه +يقصدونها +يقصر +يقصره +يقصها +يقض +يقضمها +يقضون +يقضونها +يقضى +يقضي +يقضيانها +يقضيه +يقضيها +يقضيهما +يقضٌون +يقضِ +يقطع +يقطعه +يقطعها +يقطعون +يقطف +يقطن +يقطنه +يقطنها +يقطنونه +يقطينات +يقطينة +يقظ +يقظا +يقظة +يقظته +يقظتها +يقع +يقعان +يقعده +يقعدها +يقعوا +يقعي +يقف +يقفز +يقفزن +يقفلها +يقفوا +يقفون +يقفَ +يققاً +يقل +يقلب +يقلبها +يقلد +يقلدهما +يقلدونها +يقلع +يقلعوا +يقلق +يقلقني +يقلقه +يقلل +يقله +يقلّل +يقلُّ +يقم +يقمن +يقنع +يقنعون +يقنّن +يقهر +يقهرن +يقهقه +يقود +يقودنا +يقوده +يقودها +يقودوا +يقودون +يقول +يقوله +يقولوا +يقولون +يقولونه +يقولي +يقوم +يقوما +يقوموا +يقومون +يقوى +يقوي +يقوّ +يقي +يقيس +يقيسها +يقيسون +يقيم +يقيمها +يقيموا +يقيمون +يقين +يقينا +يقيناً +يقيني +يقينًا +يقيهم +يقيّض +يقيّمون +يكابد +يكابده +يكابدون +يكاد +يكادون +يكافأ +يكافح +يكافحون +يكافيء +يكبت +يكبدها +يكبر +يكبران +يكبرن +يكبره +يكبرهم +يكبرون +يكبرونني +يكبّل +يكتئب +يكتب +يكتبا +يكتبه +يكتبها +يكتبوا +يكتبون +يكتبونها +يكترث +يكترثن +يكتسب +يكتسبها +يكتسبوا +يكتسبون +يكتشف +يكتشفها +يكتشفوا +يكتشفُ +يكتظ +يكتف +يكتفوا +يكتفون +يكتفي +يكتفِ +يكتم +يكتمل +يكتنفه +يكثر +يكثرن +يكثرون +يكثفون +يكد +يكدح +يكذب +يكذبون +يكرر +يكرسون +يكرم +يكره +يكرهني +يكرهه +يكرّر +يكرّس +يكس +يكسب +يكسبنا +يكسبه +يكسح +يكسر +يكسرها +يكسرون +يكسو +يكسوه +يكشف +يكشفن +يكف +يكفل +يكفه +يكفون +يكفي +يكفيك +يكفينا +يكفيه +يكفيها +يكفيهم +يكفيهن +يكفّ +يكلف +يكلفه +يكلفهم +يكلم +يكلمنا +يكلمني +يكلّف +يكمل +يكملها +يكمن +يكن +يكنز +يكنها +يكون +يكونا +يكونان +يكونها +يكونوا +يكونون +يكوّر +يكوّن +يكوّنها +يكوِّن +يكيد +يكيف +يكُف +يلائم +يلائمك +يلائمه +يلاحظ +يلاحظه +يلاحظها +يلاحظون +يلاحق +يلاحقني +يلاحقه +يلاحقها +يلازم +يلاطفونه +يلاعب +يلاقي +يلاقيه +يلامس +يلبث +يلبثان +يلبثوا +يلبس +يلبسن +يلبسها +يلبسوا +يلبسون +يلبي +يلبيه +يلبّوها +يلبِّ +يلتحق +يلتحقوا +يلتحقون +يلتزم +يلتزموا +يلتصق +يلتفت +يلتقط +يلتقون +يلتقي +يلتقيا +يلتقيان +يلتقيه +يلتمس +يلتهب +يلتهم +يلتهمون +يلتهون +يلجأ +يلجأون +يلجؤون +يلجئه +يلح +يلحظ +يلحظن +يلحظه +يلحظها +يلحظوا +يلحق +يلحقه +يلحقها +يلحون +يلخص +يلخصها +يلد +يلذع +يلزم +يلزمك +يلزمني +يلزمه +يلزمها +يلزمهم +يلسع +يلسعَكَ +يلصق +يلصقُ +يلطخ +يلطم +يلعب +يلعبان +يلعبه +يلعبون +يلعنونك +يلف +يلفت +يلفتني +يلفتوا +يلفظها +يلفك +يلفه +يلفها +يلفهم +يلفون +يلق +يلقاه +يلقاها +يلقب +يلقبون +يلقمه +يلقنها +يلقنهم +يلقوا +يلقون +يلقونه +يلقى +يلقي +يلقيها +يلماز +يلمح +يلمحه +يلمس +يلمسوها +يلمع +يلمعوا +يلملم +يلهب +يلهث +يلهثون +يلهج +يلهم +يلهون +يلهُو +يلوث +يلوثوا +يلوح +يلوذون +يلومه +يلومونني +يلونها +يلوي +يلوّنونها +يلى +يلي +يليق +يلين +يليه +يليها +يم +يما +يماثل +يماثلها +يمارس +يمارسا +يمارسان +يمارسه +يمارسها +يمارسوا +يمارسون +يمارَس +يمارَسان +يمازحني +يمام +يمامات +يمامة +يمانع +يماني +يمانية +يمايز +يمة +يمت +يمتاز +يمتحن +يمتد +يمتدح +يمتدحها +يمتدّ +يمتزج +يمتص +يمتلئ +يمتلك +يمتلكه +يمتلكها +يمتلكهما +يمتلكوا +يمتلكون +يمتلكونه +يمتلكونها +يمتن +يمتنعون +يمتّ +يمثل +يمثلان +يمثله +يمثلون +يمثّل +يمثّله +يمثِّل +يمخر +يمخروا +يمد +يمدح +يمدون +يمدّ +يمر +يمرر +يمرض +يمرضون +يمرنَّ +يمرون +يمرّ +يمزج +يمزق +يمس +يمسح +يمسرح +يمسسها +يمسك +يمسكن +يمسكوا +يمسكون +يمسه +يمسهم +يمسهما +يمسّ +يمسّها +يمش +يمشي +يمشيش +يمشين +يمض +يمضي +يمضيان +يمضين +يمعن +يمك +يمكث +يمكثون +يمكن +يمكنك +يمكننا +يمكنني +يمكنه +يمكنها +يمكنهم +يمكنّا +يمكِّن +يمل +يملأ +يملأون +يملؤها +يملؤوا +يملك +يملكه +يملكها +يملكوا +يملكون +يملكونها +يملي +يمليه +يملُّ +يمن +يمنة +يمنح +يمنحان +يمنحك +يمنحنا +يمنحني +يمنحه +يمنحها +يمنحونه +يمنع +يمنعنا +يمنعني +يمنعه +يمنعها +يمنعهم +يمنون +يمني +يمه +يمهله +يموت +يموتون +يموج +يمولون +يميت +يميز +يميزه +يميزها +يميزوا +يميزون +يميل +يميلون +يمين +يمينا +يميناً +يمينه +يميني +يمينية +يميّز +يميّزهم +يمُتّ +يمّمنا +يمَّمْتَ +ين +ينابيع +ينابيعها +يناجي +ينادونني +ينادونه +ينادي +يناديه +يناديها +يناسب +يناسبني +يناسبه +يناسبهم +يناشد +يناصر +يناضل +يناطح +يناظر +يناظرها +ينافس +ينافسه +ينافسها +ينافسون +يناقش +يناقشه +يناقشها +يناقشونهم +يناقض +ينال +يناله +ينالها +ينالهم +ينالوا +ينام +ينامون +يناهز +يناوش +يناير +ينبئ +ينبت +ينبثق +ينبذ +ينبذه +ينبري +ينبس +ينبش +ينبض +ينبع +ينبعث +ينبني +ينبه +ينبهني +ينبوع +ينبي +ينتابني +ينتابها +ينتبه +ينتج +ينتجان +ينتجه +ينتجها +ينتجوا +ينتحب +ينتخب +ينتزع +ينتسب +ينتسبون +ينتشر +ينتشله +ينتصب +ينتصر +ينتظر +ينتظران +ينتظرنا +ينتظرني +ينتظره +ينتظرها +ينتظرهم +ينتظرون +ينتظرونه +ينتعل +ينتعله +ينتفض +ينتفع +ينتقص +ينتقل +ينتقلا +ينتقلوا +ينتقلون +ينتقي +ينتمون +ينتمى +ينتمي +ينتميان +ينتمين +ينته +ينتهج +ينتهك +ينتهى +ينتهي +ينثر +ينثره +ينثني +ينج +ينجاب +ينجب +ينجبن +ينجح +ينجحا +ينجحوا +ينجحون +ينجذب +ينجر +ينجرف +ينجز +ينجزها +ينجم +ينجو +ينجوا +ينحازون +ينحت +ينحشر +ينحصر +ينحن +ينحني +ينحو +ينخر +ينخرط +ينخرطوا +ينخفض +ينخلع +يندب +يندر +يندرج +يندس +يندفع +يندفعن +يندفعوا +يندم +يندمج +يندمجا +يندمجوا +يندمل +ينذر +ينذرني +ينزح +ينزع +ينزعج +ينزعها +ينزف +ينزل +ينزلق +ينزلها +ينس +ينساب +ينساه +ينساها +ينسب +ينسبها +ينسبون +ينسج +ينسجم +ينسجها +ينسحب +ينسخ +ينسدل +ينسف +ينسق +ينسكب +ينسل +ينسلخ +ينسهم +ينسون +ينسى +ينسينا +ينسيني +ينشأ +ينشأوا +ينشأُ +ينشئ +ينشئونها +ينشد +ينشدها +ينشدون +ينشدونه +ينشر +ينشرا +ينشط +ينشطون +ينشق +ينشَب +ينشِّط +ينص +ينصب +ينصبون +ينصبونها +ينصبّ +ينصت +ينصح +ينصحون +ينصحونهم +ينصرف +ينصرفوا +ينصرم +ينصهرون +ينضب +ينضج +ينضم +ينضموا +ينضمون +ينضمّ +ينضوي +ينطبق +ينطفئ +ينطق +ينطقه +ينطقها +ينطلق +ينطلقان +ينطوي +ينظر +ينظرن +ينظروا +ينظرون +ينظفها +ينظم +ينظمه +ينظمها +ينظمونه +ينظّم +ينظِّم +ينعت +ينعته +ينعتونه +ينعدم +ينعشه +ينعطف +ينعقد +ينعكس +ينعم +ينعموا +ينعمون +ينعون +ينعي +ينـسى +ينفتح +ينفثون +ينفجر +ينفد +ينفذ +ينفذها +ينفذوا +ينفذون +ينفر +ينفرد +ينفصل +ينفصلان +ينفض +ينفضون +ينفع +ينفعل +ينفعني +ينفعوك +ينفق +ينفقه +ينفقونه +ينفك +ينفي +ينفيه +ينقبض +ينقدها +ينقذ +ينقذنا +ينقذه +ينقر +ينقران +ينقرض +ينقسم +ينقسمون +ينقشع +ينقص +ينقصنا +ينقصها +ينقض +ينقضي +ينقضّ +ينقضّوا +ينقطع +ينقل +ينقلب +ينقلنا +ينقلني +ينقله +ينقلها +ينقلوا +ينقلون +ينكر +ينكرون +ينكس +ينكسر +ينكمش +ينل +ينم +ينمو +ينهار +ينهال +ينهبه +ينهبون +ينهره +ينهش +ينهض +ينهضوا +ينهل +ينهمر +ينهمك +ينهوا +ينهون +ينهى +ينهي +ينوء +ينوب +ينورفولك +ينومان +ينوي +ينير +ينيرها +ينْتَشَرَ +يها +يهاب +يهاجر +يهاجم +يهاجمني +يهاجمه +يهان +يهب +يهبط +يهبطون +يهبنا +يهتد +يهتز +يهتزّ +يهتم +يهتمون +يهجروا +يهجم +يهدآ +يهدأ +يهدئ +يهداك +يهدد +يهددها +يهددون +يهدر +يهدف +يهدفون +يهدم +يهدمها +يهدى +يهديانها +يهديه +يهذر +يهذي +يهرب +يهرع +يهرول +يهز +يهزلون +يهزه +يهزون +يهضم +يهطل +يهفو +يهم +يهمس +يهمش +يهمل +يهمنا +يهمني +يهمه +يهمها +يهمهم +يهمّ +يهن +يهود +يهودي +يهودية +يهون +يهوى +يهيئ +يهيمن +يواجه +يواجهنا +يواجهه +يواجهها +يواجهوا +يواجهون +يواجهونه +يواجهوها +يوازى +يوازي +يوازيها +يواسيني +يواصل +يواظب +يوافق +يوافقه +يوافقوا +يوافقون +يوافيخهم +يواقيم +يواكب +يوبخها +يوتو +يوثق +يوجب +يوجبها +يوجد +يوجه +يوجهها +يوجههُ +يوجوسلافيا +يوجين +يوجّه +يوحدها +يوحدون +يوحنا +يوحي +يود +يودع +يودعني +يودعه +يودعهم +يودعوا +يودون +يورانيوم +يورثها +يورج +يورجنسن +يورد +يوردان +يورك +يورو +يوروبيان +يوزع +يوزعها +يوزعونها +يوسبريدس +يوســــف +يوسف +يوسيبوس +يوشتشنكو +يوشك +يوصد +يوصف +يوصل +يوصلنا +يوصلني +يوصلون +يوصي +يوصيهم +يوضح +يوضحوا +يوضع +يوظف +يوفر +يوفرها +يوفرون +يوفرونها +يوفقنا +يوفقني +يوقظ +يوقع +يوقعها +يوقعهم +يوقف +يوقّع +يوكوهاما +يوكوهاها +يولد +يولدون +يولع +يولم +يولي +يوليبيوس +يولية +يوليه +يوليهما +يوليو +يوليوس +يولّد +يولّدها +يوم +يومئ +يومئذ +يوما +يومان +يوماً +يومذاك +يومض +يومك +يومنا +يومه +يومها +يومي +يوميا +يوميات +يومياتها +يومياتهم +يومياً +يومية +يومين +يوميًّا +يومًا +يومٍ +يونان +يونانيا +يونانية +يونانيًا +يونايتد +يونج +يونس +يوننيو +يونية +يونينيرفيس +يونيو +يوهب +يوهم +يويو +ييئس +ييت +ييل +يَأْمُرُونَ +يَا +يَثْبُت +يَخْفَى +يَرْفَعِ +يَسْتَوِي +يَشَاء +يَعُد +يَعْلَمُونَ +يَفرك +يَفضل +يَفُزْ +يَنتَظِرُ +يَنْبَنِ +يَنْفَعُ +يُؤخِّر +يُؤسس +يُبرّر +يُبسا +يُبقي +يُبكَى +يُبلعا +يُبنى +يُبهر +يُبهرهن +يُتاح +يُترك +يُتَخَلَّص +يُحب +يُحتفظ +يُحتمل +يُحدد +يُحدِث +يُحدّد +يُحذَف +يُحس +يُحسن +يُحكى +يُحيّن +يُختتم +يُخشى +يُدخل +يُدخلوا +يُدركنا +يُدس +يُدعى +يُدفن +يُدل +يُدْخَل +يُدْفَع +يُذكر +يُذهل +يُراد +يُرجع +يُرجعون +يُرسل +يُرضع +يُرضيه +يُروى +يُرى +يُزرع +يُزمع +يُساء +يُستبعد +يُستخدم +يُستشف +يُستشفّ +يُستعمل +يُستهلك +يُسعدك +يُسعف +يُسقط +يُسمح +يُسمع +يُسمن +يُسمى +يُسهم +يُسَبَّب +يُسْمَح +يُشاع +يُشتبه +يُشعرهن +يُشعرُكَ +يُشكِّل +يُشيعه +يُشْبهني +يُشْرَكَ +يُصاب +يُصدر +يُصَدُّ +يُطبع +يُطرح +يُطل +يُطلب +يُطلق +يُطمر +يُطيق +يُظن +يُع +يُعتبر +يُعتد +يُعتدي +يُعتقد +يُعتَقد +يُعد +يُعدّ +يُعدُّ +يُعذب +يُعرض +يُعرف +يُعرفها +يُعرِّض +يُعزى +يُعطى +يُعقد +يُعقل +يُعنَ +يُعَبِّد +يُعَد +يُعَدّ +يُعَيَّن +يُعِد +يُعْمَل +يُعْنى +يُفتح +يُفترض +يُفرض +يُفرّط +يُفسح +يُفسَّر +يُفضي +يُفهم +يُقال +يُقبلن +يُقدَّرون +يُقهر +يُقْدَع +يُكافَأ +يُكتب +يُكتشف +يُكرهها +يُكسب +يُكسَب +يُكشف +يُكْتب +يُلَقَّاهَا +يُمايز +يُمكن +يُمكنك +يُمل +يُمنع +يُمنى +يُمنّي +يُنادى +يُنتجه +يُنزِل +يُنسب +يُنسى +يُنفق +يُنقل +يُنهك +يُنْكَر +يُهان +يُولَد