# # ====================================================================== # 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, delay_min. These # conditions will be verified with jitter buffer statistics after all # session test data are executed. # Example: # !delay 10 <- 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 !burst 1 !discard 0 !lost 0 !empty 0 !delay 1 PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG . = DTX %adaptive 0 0 10 !burst 1 !discard 0 !lost 0 !empty 20 !delay 1 PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG # Start silence GGGGGGGGGGGGGGGGGGGG # End silence PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG . = Regular burst (three gets three puts) %adaptive 0 0 10 !burst 3 !discard 0 !lost 0 !empty 0 !delay 3 PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG . = Random burst (no drift) %adaptive 0 0 10 !burst 4 !discard 1 <- there may be delay adaptation caused by multiple empty GETs followed by multiple PUTs, later when burst level reaches 'stable' condition, JB may shrink some excess frames !lost 0 !empty 4 !delay 4 PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG . = Random burst (with drift, PUT > GET) %adaptive 0 0 10 !burst 4 !discard 68 <- number of PUT - GET, JB does shrinking by discarding frames !lost 68 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal !empty 4 !delay 8 <- should be less than or equal to twice of burst P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG . = Random burst (with drift, PUT < GET) %adaptive 0 0 10 !burst 4 !discard 0 !lost 0 !empty 70 <- GET - PUT = 66, added 4 for tolerating empty caused by burst !delay 4 <- should be less than or equal to burst G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG . = Packet lost %adaptive 0 0 10 !burst 1 !discard 0 !lost 7 !empty 3 !delay 3 PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG # Some losts LGPGPGLGPGPGPGLGPGPG # Normal PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG # More losts PLPGGGPPPGGGPLPGGGPG PLPGGGPPPGGGPLPGGGPG # Normal PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG . = Sequence restart %adaptive 0 0 10 !burst 1 !discard 0 !lost 0 !empty 0 !delay 1 PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG # seq restarted after 120 PUTs (default MAX_MISORDER == 100) R PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG . = Duplicated frames = e.g.: some Forward Error Correction (FEC) methods. %adaptive 0 0 10 !burst 1 !discard 40 !lost 0 !empty 0 !delay 1 PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG . = Late frames %adaptive 0 0 10 !burst 1 !discard 8 <- late frames are discarded + delay adaptation !lost 4 !empty 4 !delay 4 PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG # Suddenly there are some lost frames LGLGPGLGLGPG # Those lost frames are actually late (+misordered), here they come OOOO # Then back to normal PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG . = PUT burst at the beginning %adaptive 0 0 10 !burst 1 !discard 50 <- frames discarded for delay adaptation !lost 50 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal !empty 0 !delay_min 2 <- minimum delay, JB is able to adapt the 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 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 PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG . = Fixed mode prefetch 5, with two empty events %fixed 5 !burst 1 !discard 0 <- #1612: no frame discard for delay adjustment in fixed mode !lost 0 <- #1612: no frame discard for delay adjustment in fixed mode !empty 10 <- 5 from GET burst + 5 from prefetching !delay 5 G PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG GGGGG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG . = Fixed mode prefetch 5, with random burst %fixed 5 !burst 3 !discard 0 <- (see above test scenario) !lost 0 <- (see above test scenario) !empty 5 !delay 6 PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG . = Fixed mode prefetch 10, PUT burst at the beginning %fixed 10 !burst 1 !discard 1 <- frames discarded due to JB full (JB default size = 50 frames) !lost 1 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal !empty 0 !delay_min 50 <- #1612: no frame discard for delay adjustment in fixed mode 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 12 !discard 300 <- not so relevant for long period session with many delay adjustments needed (i.e: for first burst and periodic spikes) !lost 300 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal !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 .