Index: pjproject/trunk/pjmedia/build/Jbtest.dat
===================================================================
--- pjproject/trunk/pjmedia/build/Jbtest.dat	(revision 2672)
+++ pjproject/trunk/pjmedia/build/Jbtest.dat	(revision 3065)
@@ -1,2 +1,46 @@
+#
+# ======================================================================
+# Jitter Buffer test data, containing one or more test sessions
+# ======================================================================
+#
+# A test session format:
+#
+# 1. Session title, started with '=', example:
+#    = Bursty environment
+# 
+# 2. Session setting, started with '%', followed by params:
+#    - mode, possible values: 'adaptive' or 'fixed'
+#    - initial prefetch, in frames
+#    - minimum prefetch (for adaptive mode only), in frames
+#    - maximum prefetch (for adaptive mode only), in frames
+#    Example:
+#    %adaptive 0 0 40
+#    %fixed 10
+#
+# 3. Success conditions, started with '!', followed by condition name 
+#    and its maximum tolerable value, in frames unit. Recognized condition 
+#    names are: burst, discard, lost, empty, delay. These conditions will
+#    be verified with jitter buffer statistics after all session test data
+#    are executed.
+#    Example:
+#    !delay 10  <- maximum average delay of jbuf is 10 frames
+#
+# 4. Session test data, containing sequence of jitter buffer events,
+#    an event is represented by a character as follow:
+#    - P: PUT a frame into jitter buffer
+#    - G: GET a frame from jitter buffer
+#    - L: generate a Lost frame, i.e: sequence jump by 1
+#    - R: sequence Restart
+#    - J: sequence Jump by 20
+#    - D: generate a Duplicated frame
+#    - O: generate an Old/late (and perhaps also duplicated) frame
+#    Example:
+#    PGPGPGPGPG <- ideal condition, PUT and GET one after another
+#
+# 5. End of session test data, marked by '.'
+#
+# ======================================================================
+#
+
 = Ideal condition
 %adaptive 0 0 10
@@ -303,22 +347,215 @@
 %fixed 10
 !burst	    1
-!discard    35 <- frames discarded for delay adaptation
+!discard    50 <- frames discarded for delay adaptation
 !lost	    0
 !empty	    0
-!delay	    30 <- average delay
-PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
-.
+!delay	    20 <- average delay, twice of minimal prefetch
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+.
+
+= Large PUT burst at beginning, then normal with burst level 10 and periodic burst spikes
+%adaptive 0 0 40
+!burst	    10
+!discard    300 <- not so relevant for long period session with many delay adjustments needed (i.e: for first burst and periodic spikes)
+!lost	    0
+!empty	    60 <- delay adjustment effect, as there is actually no drift
+!delay	    20 <- twice of burst level average
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+.
