Open GoogleCodeExporter opened 8 years ago
This is very interesting--hopefully Channel 4 will soon be offering programmes
at decent resolution.
All the videos I've tried so far have worked. Please provide a URL which
doesn't work so I can have a look.
Original comment by zakflash...@gmail.com
on 15 Apr 2012 at 3:14
Try this one...
http://www.channel4.com/programmes/homeland/4od#3311268
They switched to a video/f4f stream...
http://stream-recorder.com/forum/tags/f4f/
My test program...
$ perl ch4_f4vdownload.pl
http://www.channel4.com/programmes/homeland/4od#3311268
Fetched from http://www.channel4.com/programmes/homeland/4od#3311268
Fetched from http://ais.channel4.com/asset/3311268
Fetched from
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_1500000_.f
4m
Bitrate 400 CH4_08_02_24_52804008001002_003_16x9_0500000_
Bitrate 700 CH4_08_02_24_52804008001002_003_16x9_0800000_
Bitrate 872 CH4_08_02_24_52804008001002_003_16x9_1000000_
Bitrate 1072 CH4_08_02_24_52804008001002_003_16x9_1200000_
Bitrate 1372 CH4_08_02_24_52804008001002_003_16x9_1500000_
Selected Bitrate = 400
Fetched Fragment
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_0500000_Se
g1-Frag1
Fetched Fragment
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_0500000_Se
g1-Frag2
Original comment by njtaylor...@gmail.com
on 16 Apr 2012 at 12:49
Interesting, I wasn't aware of f4f. I've done a little bit of research and
looked at the f4m file you linked to. I'm a bit concerned about the amount of
DRM-related junk in it. Are the videos themselves encrypted to the max, or is
it just the metadata that's encrypted? Interestingly mplayer seems to detect
the first fragment as MPEG 4 / H264.
From what I've seen, neither ffmpeg nor mplayer support assembling these
fragments into a single file. I had a look and found various Adobe
specifications and ActionScript code (links below) but didn't have the time to
investigate fully. (i.e. I don't know if the fragments contain a little bit of
metadata and then the video data, making it relatively easy to reassemble, or
what's going on.)
http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf
http://opensource.adobe.com/svn/opensource/osmf/trunk/framework/OSMF/org/osmf/ne
t/httpstreaming/
http://help.adobe.com/en_US/HTTPStreaming/1.0/Using/WS9463dbe8dbe45c4c-c126f3b12
60533756d-7ffc.html
Could you share your test script please?
Original comment by zakflash...@gmail.com
on 16 Apr 2012 at 6:25
From what I found, they may not be using the DRM, or if they are it's
only a small part before the segment fragments. I couldn't see drm in
the Fragments I looked at, might be in later ones.
Part of the video is in metadata, for each bitrate, and refers to audio
video mp4a/avc1.
Attaching the test script, excuse muddle I am middle of attempting to
assemble the fragments. Might have taken wrong turn trying to create flv
file. Wasn't sure if I need to just put fragments together, or needed to
put the mdat boxes together. Internals of video files is new to me.
The DRM block in the fm4 file, have b64 decoded once, but contains
within it a B64 block, that tells you how to fetch the key. Haven't
looked at that yet.
Seen the documents above, also found my way to this one
ISO_14496-15_AVCFF.pdf.
Original comment by njtaylor...@gmail.com
on 16 Apr 2012 at 7:03
Attachment striped when sent by e-mail..
Original comment by njtaylor...@gmail.com
on 16 Apr 2012 at 7:26
Attachments:
Interesting, I've had a look at your test script and it seems you've done lots
more investigation than I have.
How are you meant to determine the number of segments and fragments? It doesn't
seem to be mentioned in the XML, and when I dumped the Flash player's memory, I
only see Seg1-Frag1 and Seg1-Frag2--no obvious details of the total number of
segments.
The only interesting thing I've discovered, which probably isn't that
surprising when you think about it, is that the memory dump contains
org.osmf.net.httpstreaming.f4f::HTTPStreamingF4FStreamInfo, implying that they
are indeed using the ActionScript classes we expected. That could give clues
for how to implement this maybe.
Original comment by zakflash...@gmail.com
on 17 Apr 2012 at 8:53
this is what I just completed the from decoding the bootstrap b64
encoded - in the .f4m file... I get the following information
BOX abst 139
Timescale 1000
CurrentMediaTime 2846080
29 29
drm
Seg Type asrt len 25
Segment Run Count 1
First Segment 1 Frag per Seg 712
reached - 25 25
Frag Type afrt len 70
TimeScale 1000
Frag Run Count 3
first frag 1 Frag timestamp 0 Frag duration 4000
first frag 712 Frag timestamp 2844000 Frag duration 2100
frag - end of presentation
reached - 70 70
Reached 139
139 Eof of Boxes Fragment Reached
712 is the correct number of fragments, 4000*711+2100 = 2846100
2846100 about 48mins + advert makes it 1hr about right duration.
Each fragment about 4seconds.
The abst box contains one or more asrt boxes followed by one or more
afrt boxes, those boxes contain a list of segments and fragments.
Each fragment also contains a abst box with asrt and afrt boxes within.
I revised the script, for now using download copies in files, to save
repeated downloading.
Original comment by njtaylor...@gmail.com
on 17 Apr 2012 at 10:47
second test script, uses files instead of downloading each time.
Original comment by njtaylor...@gmail.com
on 18 Apr 2012 at 1:43
Attachments:
I'm guessing this doesn't download a completed joined file from the fragments?
I ran the test script with a recent ch4 program and had message "could not open"
Original comment by mathew.h...@gmail.com
on 19 Apr 2012 at 8:46
The file reads are done by readfile subroutine,
my $raw_xml = readfile "asset";
$raw_xml = readfile "CH4_08_02_24_52804008001002_003_16x9_1500000_.f4m";
$streamdata = readfile "CH4_08_02_24_52804008001002_003_16x9_1500000_Seg1-Frag$i";
Uses files called asset = xml contents from
http://ais.channel4.com/asset/3311268
file called CH4_08_02_24_52804008001002_003_16x9_1500000_.f4m
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_1500000_.f
4m
Script to download Fragments, uses OpenBSD ftp, may need to change to
curl/wget...
i=1
while ([[ $i -lt 713 ]] )
do
ftp http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_1500000_Seg1-Frag${i}
i=$(($i+1))
done
AMF0 decode of meta data gives this...
Metadata
$VAR1 = 'onMetaData';
$VAR2 = {
'custdef' => [],
'audiosamplerate' => '24000',
'videocodecid' => 'avc1',
'width' => '1024',
'audiocodecid' => 'mp4a',
'aacaot' => '0',
'audiochannels' => '2',
'videoframerate' => '25',
'trackinfo' => [
{
'length' => '71150000',
'language' => 'eng',
'timescale' => '25000'
},
{
'length' => '68306944',
'language' => 'eng',
'timescale' => '24000'
}
],
'duration' => '2846.12266666667',
'height' => '576',
'avclevel' => '40',
'avcprofile' => '77'
};
That's for highest bit rate...
Original comment by njtaylor...@gmail.com
on 19 Apr 2012 at 11:46
I guess the question is can this be made into a plugin?
Original comment by mathew.h...@gmail.com
on 19 Apr 2012 at 6:35
The channel 4 plugin, would get the streamURL from the asset xml, as it
currently does if starts rtmp use rtmpdump as before. if starts http,
then calls a new utility routine FlashVideos::F4V .....
Then it could be used by other site plug-ins, for this type of streaming.
Original comment by njtaylor...@gmail.com
on 19 Apr 2012 at 7:50
Perhaps I'm missing something but when I tried to play the resulting media file
(though only containing 3 fragments), VLC didn't recognise it as a media file...
As for integration into get_flash_videos, I recommend another downloader class
like FlashVideo::Downloader and FlashVideo::RTMPDownloader:
FlashVideo::F4VStreamDownloader or similar. If a plugin or site module returned
a F4V URL, get_flash_videos would just invoke the appropriate method on an
instance of the F4VStreamDownloader class.
As 4oD finally offers (it seems) different quality settings for videos, support
for that should be added to Channel4.pm too. See lib/FlashVideo/Site/Youtube.pm
for an example.
Original comment by zakflash...@gmail.com
on 19 Apr 2012 at 9:30
The f4v stream is based on mpeg4 - however the header parts are in the
stream url xml/.f4m file, and are in a different form to mp4. The first
step was decoding that, then the next stage is to create the mp4 header
for the file.
This is getting to far ahead from where I am at the moment.
I have done this before for ITV and Channel5 plugins. Again getting a
basic download working first, then I can look at this.
Original comment by njtaylor...@gmail.com
on 20 Apr 2012 at 12:16
I'm scratching my head with this one. I'll watch this space for a plugin update.
Original comment by mathew.h...@gmail.com
on 21 Apr 2012 at 12:35
Any news on progress on getting a completed download working?
Original comment by mathew.h...@gmail.com
on 27 Apr 2012 at 11:47
On 04/27/12 12:47, get-flash-videos@googlecode.com wrote:
Had to take a break, should be able to get back to looking at this soon.
Original comment by njtaylor...@gmail.com
on 1 May 2012 at 4:02
[deleted comment]
Tried cat-ting fragments together but no go with mplayer or vlc; also tried php
script from stream recorder site which gave me a video file 13b long! I suspect
the 4od videos may be protected by Adobe Flash Access Protection.
Original comment by jtaylor...@gmail.com
on 14 May 2012 at 7:43
jtaylor: if read njtaylor's previous comments on this issue, you'll see that
he's provided a script to combine the fragments together. It's not as simple as
just cat-ing them, because that won't give you the FLV header. If you look at
ch4combine.pl (line 323) you'll see there's code to generate the FLV header,
though it's commented out. It's not commented out in ch4test.pl, njtaylor's
other script.
njtaylor's previous investigation suggests that the video data itself isn't
DRM'd--but it's just not obvious to figure out how to put the files together.
The FLV file format spec and the documentation for HTTP streaming aren't
exactly easy going.
I'd really like to get this working though, as use of it is going to increase.
BBC trialled it last year for a Grand Prix too, worked pretty well.
Original comment by zakflash...@gmail.com
on 15 May 2012 at 8:05
The script I referred to (AdobeHDS.php) is here:
https://github.com/K-S-V/Scripts
(from http://stream-recorder.com/forum/adobe-hds-fragment-joiner-t12074.html)
PHP script that assembles an flv file from the f4f fragments. Can someone else
try it on 4od fragments?
Original comment by jtaylor...@gmail.com
on 16 May 2012 at 7:56
I tried it but also just got a 13 byte file - it just contains the FLV header.
I used http://www.channel4.com/programmes/the-cleveland-show/4od#3345377 as my
test. njtaylor's script only downloads 2 segments (intentionally).
I've had a bit of a look at AdobeHDS.php. It can only handle packet types of
audio (0x08) or video (0x09) yet the packet types in the F4F files I have from
4od are 40 and 41. Nevertheless it's probably a good starting point.
Original comment by zakflash...@gmail.com
on 16 May 2012 at 8:01
The AdobeDS.php script does not work,
I added these two lines after line 293..
$packetFlags = $packetType & 0xe0;
$packetType = $packetType & 0x01f;
That gives some output, not output that can be played. Rather than 0x08
or 0x09 for audio / video the type is 0x28 and 0x29, the flag bits
indicate some form of encryption.
The .f4m xml contains Additional data contains a bundle of x509 certificates
in some format. Along with the infromation AES-CBC and Key Length 16 (128
bits), and
the Metadata, combining the frag misses the header information.
Below is the output from my current script of some packets, with
encrypted/decrypted
audio/video using the wrong key and padding hasn't been removed after
decryption yet either.
1st 4 Columns are from the trun box, Hint Track,
filt = Number of filters to be applied
Name = Filter name, 'SE' = Selective Encryption,
FiltLen = Length of filter params
EFlag = 80 if Encrypted.
IV = AES Initial Value Vector.
PLen = Packet data length
TSize = Tag Size (Size - 4, Leng + 11)
Durat Size Flags COffs Type Leng Timesta StrID Aud/VidHdr filt Name
Filtlen EFlag IV PLen TSize
0, 57, 02000000, 0 28 42 0 0 af00 1 SE 17 80 a2d058b12ccf1dbb80e628e7e5259cf0 16 53
8b198d489ecee8c70ce405db8435e0fa
f579849c92167dec92173a9a2b60f670
0, 124, 02000000, 0 29 109 0 0 1700000000 1 SE 17 80 3ee9d9b96150cbb8da29ec4f1d916c4d 80 120
0590f7259960135822837b7be9473c664522adde040d19fffc3b6c10f348ed98f84726d1a00cb938
7c3301c168431263
0747269bbf12b197cc54ae44d2a38dccf759241069ac502acd80eb73ecb53e221426240eb3f4add2
984646d59e3dba1e
0, 124, 02000000, 0 29 109 0 0 1700000000 1 SE 17 80 03e9b73d360f687b0d225272bfbae920 80 120
7ac605873791e2fd84ec208e04484139ae002139e22210ffcf84478d5f0025b1cdbea837788c1faa
8583b9b11106c327
e39d6c246a0eda4ab431490b500f82af673d9de2d89ff73aa046fc3ea822ad44a61a49350b460015
1e88bdbf050bcaa4
0, 1052, 02000000, 0 29 1037 0 0 1701000028 1 SE 17 80 1f8739e36948d56496d3e3ec11fe3b72 1008 1048
8882bf6d197979790a54c060b884ef3396149fa3f61dee6d4986244d4142040a80f561e21b155be8
fa5531929192f164
65303868989d21b6ea7d265b300c29b61193ae996b56369288141bcfc85b9e5f585953a0833cfbc3
094caec37702424d
40, 329, 01010000, 0 28 314 0 0 af01 1 SE 17 80 32eadcaabe27fa8c24b2234624fdd870 288 325
d0f6b28e6286f10a5819f396c182e43e5864fb32d51df8297542f34fd6cdc6d11b68825e5efe06ad
fffbdd145671d4ed
73bc8c58aa3adef0b5865b1afeaa948cd06bef3657cca2d213ce5c92690b7f172efc5d701ee61cd3
66249c3b8b1296aa
2, 2572, 01010000, 0 29 2557 40 0 2701000050 1 SE 17 80 ae186b61c5b1c49ec84c0dfacdd37aa3 2528 2568
6557069fbbb724631c1392ea90801d2deb8ea1c06307b3818b6e4e9a00792114ca60e5284035f2a6
39a65961b600b59c
f02ae1023bb1b8420ff46092d5d0315b888d69c0e9670ed9df35a7805acc211ef6f6c8f377164da7
074b0d1f0b75c887
38, 393, 01010000, 0 28 378 42 0 af01 1 SE 17 80 1e5eff1d9fc9e56bf94ad482aa2aaaed 352 389
af293fb6d06a5ea7fac8c4123f7affdb9f5af19f50dc3c9df07b20b0d0d3f21b5f7eff8034b3c34b
c554c6540c305fe3
1600970b80b69e94089dd444698afda83ee3c522b682d5ecb6d6456b940e60980c06a3831dd5bc7e
577a89537151455c
5, 300, 01010000, 0 29 285 80 0 2701000000 1 SE 17 80 83ba7dabe9b55061d32dd07b1420c6b3 256 296
fc34fa26fb6914f63e93a8b2456fada33fdcf6c1f9df802722b3f306b0c834fd39ba10583d0afec4
fca31e78319cb7f8
e05aba102124556bdd0f1633c3d9cb622da7fdfc0954a86ca55713fd1d6b3c682aaa76eee0f8d253
2976a330c77195a6
.....
I need to find the 16 byte(128bit) key.
Original comment by njtaylor...@gmail.com
on 17 May 2012 at 3:22
Looks like the key is
n9cLieYkqwzNCqvi
Original comment by moss...@gmail.com
on 23 Jun 2012 at 9:55
are we getting close too having a means to download 4od yet?
Original comment by mark.cro...@gmail.com
on 10 Jul 2012 at 7:05
The existing support works with many videos--only some use HDS. I would like to
see HDS support too but I don't have the time to work on it, and evidently
njtaylor doesn't either.
Perhaps someone can use njtaylor's investigation and the key and try to produce
a working download script. If someone does this I will consider integrating it
into gfv.
Original comment by zakflash...@gmail.com
on 10 Jul 2012 at 8:06
See http://code.google.com/p/get-flash-videos/issues/detail?id=428 for some
insights. Who knows? Might help.
Cheers,
--
Cristian
Original comment by Cristian...@gmail.com
on 17 Oct 2012 at 4:44
njtaylor: can you please post the most up-to-date script that you have? I
wonder if with the possible key provided by mossytc, your script and K-S-V's
scripts (https://github.com/K-S-V/Scripts) we could try to hack something
together.
Channel 4 is increasing using HDS and there are lots of shows I now can't watch
:(
Original comment by zakflash...@gmail.com
on 30 Oct 2012 at 8:20
current script.
run using perl ch4_f4v_flv.pl url
url should end in 6 digits like these
http://www.channel4.com/programmes/suburgatory/4od#3417498
http://www.channel4.com/programmes/suburgatory/4od?intcmp=homecatchup~3431801
limited to 4 fragments.. url will be set if not given.
create a directory with the 6 digits, downloads once into directory, then on
uses directory. lots of print / output can be taken out. Needs Convert::ASN1.
Original comment by njtaylor...@gmail.com
on 31 Oct 2012 at 9:04
Attachments:
[deleted comment]
The code was posted by request in a non working state, the key to decrypt the
stream is not known so the video can't be played. This is to allow others to
look at finding the key. Until the key is found it is unknown if the flv file
created is in the correct format.
Original comment by njtaylor...@gmail.com
on 7 Nov 2012 at 1:18
slist is still there but is not detected by the script, however i got round
that by manually adding the details. the key seems to be in the swf file,
contractid from the xml is another potential for the key
http://ais.channel4.com/asset/3412042?1346634890, the token would be my best
guess where the key is as it seems to be long similar to a 128bit key. im going
to do some packet capturing just as it about to begin and end the key will be
hidden or obvious but finding it is the hard bit.
Original comment by andrewcr...@gmail.com
on 7 Nov 2012 at 6:45
mmmmm seems i might have stumble upon the key without realizing it
see attach file ive not a clue how i got it
Original comment by andrewcr...@gmail.com
on 7 Nov 2012 at 6:54
Attachments:
and it seems i have got hold of another xml file not sure where from but it has
some interesting data
<drmAdditionalHeader
drmContentId="293409"
id="drmMetadata5154"
>
AgARfEFkZGl0aW9uYWxIZWFkZXIDAApFbmNyeXB0aW9uAwAHVmVyc2lvbgBAAAAAAAAAAAAGTWV0aG9kAgAIU3RhbmRhcmQABUZsYWdzAAAAAAAAAAAAAAZQYXJhbXMDAAdWZXJzaW9uAD/wAAAAAAAAABNFbmNyeXB0aW9uQWxnb3JpdGhtAgAHQUVTLUNCQwAQRW5jcnlwdGlvblBhcmFtcwMACUtleUxlbmd0aABAMAAAAAAAAAAACQAHS2V5SW5mbwMAB3N1YlR5cGUCAA1GbGFzaEFjY2Vzc3YyAA5GTVJNU19NRVRBREFUQQMACE1ldGFkYXRhAiCETUlJWVhnWUpLb1pJaHZjTkFRY0NvSUlZVHpDQ0dFc0NBUUV4Q3pBSkJnVXJEZ01DR2dVQU1JSUlEUVlKS29aSWh2Y05BUWNCb0lJSC9nU0NCL293Z2dmMkFnRUNNSUlCYkRDQ0FXZ0NBUU1DQVFJRUpFWTROVVV6TlRrNUxUVXpOVEF0TXpGRU1TMUNOekUwTFRJM1JUQkdSVEZETmtRM05UR0I0REJaRENsamIyMHVZV1J2WW1VdVpteGhjMmhoWTJObGMzTXVjbWxuYUhSekxteHBZMlZ1YzJWVmMyRm5aYUFzTVNvd0VBWUpLb1pJaHZjdkF3WU9vQU1CQWY4d0ZnWUpLb1pJaHZjdkF3WU5vQU1CQWYraEJBSUNBU3d3Z1lJTUlXTnZiUzVoWkc5aVpTNW1iR0Z6YUdGalkyVnpjeTV5YVdkb2RITXVjR3hoZWFCZE1Wc3dGd1lKS29aSWh2Y3ZBd1lFb0FNQkFmK2hCVEFEQWdFQ01CNEdDU3FHU0liM0x3TUdCNkFEQVFIL29Rd3dDcUFEQ2dFQ29RTUtBUU13SUFZSktvWklodmN2QXdZTG9BTUJBZitoRGpBTW9BTUtBUUtoQlRBRENnRURvQXdNQ2pNdU1DNHhMakEyTlRXaEVBd09RelF0Vms5RUxUUnZaQzV3YjJ5ak1qRXdNQzRNS21OdmJTNWhaRzlpWlM1bWJHRnphR0ZqWTJWemN5NWhkSFJ5YVdKMWRHVnpMbUZ1YjI1NWJXOTFjekVBcGdNQkFmOHhnZ1R3TUlJRTdERWtEQ0pvZEhSd09pOHZabUY0TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSUlFd2pDQ0E2cWdBd0lCQWdJUWJDcnpZWE1xTGpWeW40ZXh5ZVRscURBTkJna3Foa2lHOXcwQkFRc0ZBREJsTVFzd0NRWURWUVFHRXdKVlV6RWpNQ0VHQTFVRUNoTWFRV1J2WW1VZ1UzbHpkR1Z0Y3lCSmJtTnZjbkJ2Y21GMFpXUXhNVEF2QmdOVkJBTVRLRUZrYjJKbElFWnNZWE5vSUVGalkyVnpjeUJEZFhOMGIyMWxjaUJDYjI5MGMzUnlZWEFnUTBFd0hoY05NVEl3TVRJME1EQXdNREF3V2hjTk1UUXdNVEl6TWpNMU9UVTVXakNCaHpFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1VHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNUkl3RUFZRFZRUUxGQWxVY21GdWMzQnZjblF4R3pBWkJnTlZCQXNVRWtGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3pFaU1DQUdBMVVFQXd3WlVrVkVRa1ZGVFVWRVNVRXRWRk5RVkMweU1ERXlNREV5TXpDQm56QU5CZ2txaGtpRzl3MEJBUUVGQUFPQmpRQXdnWWtDZ1lFQTNjbGRtNFNIMVJSR0prV09lUUtBZklDMnlGc21kMGNUSFM5UUtucFNzdEEwaXJibE9lSTU2V3VmcXpYb0QvUEtmSEZ6OWhXak50OUtoWFJodTQ2U0NPeUNxUkk0REtZZDgxeXVtaDZXblQ5N1l0bmJIV0poY2l1aUg3bkFvNTBDbFNOb2JCWEkvUm1YZXJKUzZ0WkJYb09TL3BPamlkRTJ4eW1abkt3d0Rma0NBd0VBQWFPQ0FjMHdnZ0hKTUdrR0ExVWRId1JpTUdBd1hxQmNvRnFHV0doMGRIQTZMeTlqY213ekxtRmtiMkpsTG1OdmJTOUJaRzlpWlZONWMzUmxiWE5KYm1OdmNuQnZjbUYwWldSR2JHRnphRUZqWTJWemMwTjFjM1J2YldWeVFtOXZkSE4wY21Gd0wweGhkR1Z6ZEVOU1RDNWpjbXd3Q3dZRFZSMFBCQVFEQWdTd01JSGtCZ05WSFNBRWdkd3dnZGt3Z2RZR0NpcUdTSWIzTHdNSkFBQXdnY2N3TWdZSUt3WUJCUVVIQWdFV0ptaDBkSEE2THk5M2QzY3VZV1J2WW1VdVkyOXRMMmR2TDJac1lYTm9ZV05qWlhOelgyTndNSUdRQmdnckJnRUZCUWNDQWpDQmd4cUJnRlJvYVhNZ1kyVnlkR2xtYVdOaGRHVWdhR0Z6SUdKbFpXNGdhWE56ZFdWa0lHbHVJR0ZqWTI5eVpHRnVZMlVnZDJsMGFDQjBhR1VnUVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56SUVOUVV5QnNiMk5oZEdWa0lHRjBJR2gwZEhBNkx5OTNkM2N1WVdSdlltVXVZMjl0TDJkdkwyWnNZWE5vWVdOalpYTnpYMk53TUI4R0ExVWRJd1FZTUJhQUZCb2tadzhrUGlncHNMbmlkWTZGQVYybG45RE1NQjBHQTFVZERnUVdCQlRWdWYwM2R2STRrYjJ5SjdHOWgvM3JPRURkMERBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRTNNQkVHQ2lxR1NJYjNMd01KQWdVRUF3SUJBREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBWnFlQlUyQm1ld2hzdDducGVDZ04vcHhndnpFZGZVNUdacDhkUld4cVVFRGVtSVZNdkNwRy92TWxRYWFuZHl3OVBQSnJQTW1RblhHR2V3SUpyTko4YjQ2MnJuc3ZLb1ZkWXJVYVMxeUI0dU96eHdHRzRzdUF5bWdWNkhCcTJsTXIyUUtOaWg4SzRQWjYrdFBucmhuU2ZBd0wzUEJ1U3I2MVFLcGN2RWZyM253QXQxQmcyUEVaR3BSalJMUjcySE5RVjJGV3FBa0tsait1RWwzRFJvTmtiUmNZb0JVRHNGQS8ydGpCYmM1WXBXZTRFOTJaMGtMZkhuZ1gwUElqL0h0aWFubnY4S3czOEowMnhsZGZzWFUySzYwNWVlMXd3YzJNcHRwZXBVM0FrZHR2WlgrMUJGWWJYZEVKYmROakNVN3RiQ2JmODVQNHhxMjQxc2w5aWRaRnBqQ0I4Z1FKVFdwcmVrNUVRVFVBR0E4eU1ERXlNRGt5TURFd01EazFOVm9FZ1lCME4xZnlPOFZoV0J2TFFWdjZOZWpjeit1ZWlhU2ZEMTBLOHFGUTU0bVZNL01pY1ZXdFhKZzBlbFBqNWZJZndnbFJrQVdMeER1dmJDNWFJL1VXMlhZV1c5YlluYmF3cVlONjBTeUJTd3RTaSszalBIWnVMN2Z6YUxKU1Z1RzFpdGNBZmZna2YyMmxRdXVBNkRGVDdHZnFmTGpWaFVpbkFtZGp5U0xIZDJqUnhqQWhCZ2txaGtpRzl5OERDQUlFRk9pRm1XT1hwS0xXTmM1SWVBTkJOWndDUmZkbG9BZ0VCakk1TXpRd09hRWtEQ0pvZEhSd09pOHZabUY0TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSGt3WlRFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNVEV3THdZRFZRUURFeWhCWkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nUTNWemRHOXRaWElnUW05dmRITjBjbUZ3SUVOQkFoQWtoSVhhODNLYkR2THhvN3hobUQyOG9CME1Hekl1TUM0eU1ERXlNRGt5TURFd01EazFOWHBmVWtWTVJVRlRSYUNDRHFRd2dnVEJNSUlEcWFBREFnRUNBaEFraElYYTgzS2JEdkx4bzd4aG1EMjhNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1HVXhDekFKQmdOVkJBWVRBbFZUTVNNd0lRWURWUVFLRXhwQlpHOWlaU0JUZVhOMFpXMXpJRWx1WTI5eWNHOXlZWFJsWkRFeE1DOEdBMVVFQXhNb1FXUnZZbVVnUm14aGMyZ2dRV05qWlhOeklFTjFjM1J2YldWeUlFSnZiM1J6ZEhKaGNDQkRRVEFlRncweE1qQXhNalF3TURBd01EQmFGdzB4TkRBeE1qTXlNelU1TlRsYU1JR0dNUXN3Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hRYVFXUnZZbVVnVTNsemRHVnRjeUJKYm1OdmNuQnZjbUYwWldReEVUQVBCZ05WQkFzVUNGQmhZMnRoWjJWeU1Sc3dHUVlEVlFRTEZCSkJaRzlpWlNCR2JHRnphQ0JCWTJObGMzTXhJakFnQmdOVkJBTU1HVkpGUkVKRlJVMUZSRWxCTFZCTFIxSXRNakF4TWpBeE1qTXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTFIwNlU5cG1jUjRocldXS2Y5dWdLMUZGWEJzaEpMbTJTenhaYnliSEV1a1N4RGhYMHNTMWg1VDJLbHg0bUMrSjU2emExMHRXelFac2hzaSt2czRCdzc2TzRwUTVhQ0pLYXhzT0N5NHppUzY0QzZmQTBsaUdEQ21Zdy9GME84ZlZCWjMrVTdzNjJoM1lpUEEwVUMxdmU4SnBOY1c1Yk83SnJxcU4rd1hmenF6QWdNQkFBR2pnZ0hOTUlJQnlUQnBCZ05WSFI4RVlqQmdNRjZnWEtCYWhsaG9kSFJ3T2k4dlkzSnNNeTVoWkc5aVpTNWpiMjB2UVdSdlltVlRlWE4wWlcxelNXNWpiM0p3YjNKaGRHVmtSbXhoYzJoQlkyTmxjM05EZFhOMGIyMWxja0p2YjNSemRISmhjQzlNWVhSbGMzUkRVa3d1WTNKc01Bc0dBMVVkRHdRRUF3SUVzRENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29xaGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05sY25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dnZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQWZCZ05WSFNNRUdEQVdnQlFhSkdjUEpENG9LYkM1NG5XT2hRRmRwWi9RekRBZEJnTlZIUTRFRmdRVTJkaGE0K3lMYkJ0Z3huaVBZSW9KeEJ6eEFwQXdGUVlEVlIwbEJBNHdEQVlLS29aSWh2Y3ZBd2tCTmpBUkJnb3Foa2lHOXk4RENRSUZCQU1DQVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDVm80ZVU4SnowbmRlUzU2Qi9lQ3JScEtxNFp2N1NCVWRLUnlLZXAyS1JmbEZRNXV0SEZsVWlVMlRTdk9vZ3hDdHhsSjZndHhwOXZnYmJvVng4N1dTV2VvMWVqSmtHbUV3SjNaOTQ4ZFlZZHRZMFl3My9KWmJEK0doeTZhLzlyV1dYSWpJQlFiUk5mdmVYVUxpYW5wZG43Uk9jQldzY01JalU2UFord2tDQ1B6YTkwTVBsTi9DRWNFdDlXclZQTmtibzM5M1l6QkRLOTF5azVra0p5UzF3LzFValpHeFRvYW1yWDJENWlSV0d3aDVUbzV2LzRnbSsxcTVTZkZXN0lJSjlqKzg1dTU4TUJFaUhLQ3pVUEI1TkJ3UlZwZ1VmelN6V2tLQVo3NDdWOVVncUFsSWsycnBWcW16QTlEN3Zna0JVYUlBWGpYOUxJM1V3cTM0MlZCUFV3Z2dUVk1JSUR2YUFEQWdFQ0FoQTB0bnBuZUxkNVJDYnBDQlFuOGwydU1BMEdDU3FHU0liM0RRRUJDd1VBTUZjeEN6QUpCZ05WQkFZVEFsVlRNU013SVFZRFZRUUtFeHBCWkc5aVpTQlRlWE4wWlcxeklFbHVZMjl5Y0c5eVlYUmxaREVqTUNFR0ExVUVBeE1hUVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56SUZKdmIzUWdRMEV3SGhjTk1Ea3hNVEV3TURBd01EQXdXaGNOTWpreE1UQTVNak0xT1RVNVdqQmZNUXN3Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hNYVFXUnZZbVVnVTNsemRHVnRjeUJKYm1OdmNuQnZjbUYwWldReEt6QXBCZ05WQkFNVElrRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkpiblJsY20xbFpHbGhkR1VnUTBFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUMrVndqYmgxVDZPT0k3QW5zVy9rRG9OZVpscVhoWGhJNVcwaExJYSszZVBLTUNETGlLNSt3OGczTDU0VDlQRStRclpMQ2ZVUmtsalRPTWxJdVZrT0N4c0hZOFlKSGVXTTZxanVtT005SVVucisvOU1pNXQ1bWZTdEVRZHk4amRhZTUwSHd2b3hHdE9YYlphNjNhbmN3Z2p2S3ZJMGZPSHJZeGsyK3g5U3R4czBseUpWdkRQT2JBQmQzNTZnMytXWXdnUWFLOWdDSWI1UkpVeGR2UU1hNUgwWUNoZG5PcVEvcTZiT0lSRWllSmlRb0cvR2czcTJqT1NxWFJkcW11ZUQ3VGVLSHg4d3Zzc0xPZlRTQVowV0g3Q0orYnh3eHVZNmVlbGdwSnM5bUhpVEh4UWFBcjMxYjZucDlRY0czYTJ2aXVhV21BNTN0NlBZalBjMUE3SWFqbEFnTUJBQUdqZ2dHVE1JSUJqekFPQmdOVkhROEJBZjhFQkFNQ0FRWXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBVENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29xaGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05sY25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dnZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQkNCZ05WSFI4RU96QTVNRGVnTmFBemhqRm9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2UVdSdlltVXZSbXhoYzJoQlkyTmxjM05TYjI5MFEwRXVZM0pzTUIwR0ExVWREZ1FXQkJUekxuVmhSQmxBaXBHTVRyRldXazdQVEVBMzhEQWZCZ05WSFNNRUdEQVdnQlNIZlM4K0pnVEN4TGVNMEtyaWd6K1k5eXJlWmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQW00YUZxai9sMG9HempZeFRTRjkxMFpRcldYZElhVGo1dFV6c0I0MVM5TnB3WUhPTkRKYXh6bWtvbGhiSTJpVnYzd01JcEhMRE4ycG1mS20yRDZTbHliOU92cmhONU1Db2F6cEVWODgzVy9UUG5qRmd6cUU0RVliNEFFRlJZRW9PVTdpNGFWUERVVHMzVDJKVHhENG9jZUJIQVBxbXcrQXFoSVk5eHpJbGlYY2NxVy9XeHhUd2ZDWXFJOC9IdW5jNG02aVdKQTBWM1IxYTFMK0pEWVZiZE9NMlpxSXJBY3dVMjBPLzhUcS9xQlFLNjZ1U0FjR0UwZHR2cFV0am04K1RNYlRoSHhkdENjMlJ6TGpYbFN0a1Q0YzFIdERlbVJrSk01RWk3ZWR4djcvSklYWEMzTFFFYVhrWUFYWkQrVlc1REUvRnU0YmFkWSt4UE1VdVAvSXdsVENDQlFJd2dnUHFvQU1DQVFJQ0VEd0V5eFBEVFMyekxnUDUvYlRpZFlRd0RRWUpLb1pJaHZjTkFRRUxCUUF3WHpFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNU3N3S1FZRFZRUURFeUpCWkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nU1c1MFpYSnRaV1JwWVhSbElFTkJNQjRYRFRBNU1URXhNREF3TURBd01Gb1hEVEkwTVRFd09USXpOVGsxT1Zvd1pURUxNQWtHQTFVRUJoTUNWVk14SXpBaEJnTlZCQW9UR2tGa2IySmxJRk41YzNSbGJYTWdTVzVqYjNKd2IzSmhkR1ZrTVRFd0x3WURWUVFERXloQlpHOWlaU0JHYkdGemFDQkJZMk5sYzNNZ1EzVnpkRzl0WlhJZ1FtOXZkSE4wY21Gd0lFTkJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXM4c1pJMTFGYWttSFpIaWJyaUVrQWlHSGhaZ1RqanlVNU01UlI5NlFjSEQwUWlPeGVZNFE4RkFsSnFvVWNzT2RjbGIrT3lTMnJudFBWSXAwVnlnZGR1Nm5TUzRTYWljUWNoUExKeEhqUy9FUlJrSTBhZXB2SFYxZWw2TGRjRFhRLzllVXZRbll3NjlSTmRieVM5Q0hBZTI3R01QQmpwNFpLNHlkUFQ0U2VnSTZKYmw4L0FucHBBSWVyZ1BMS29HWVl4NmFmdEhBaVViR1FIcUlHM1YxUmpacTU1Vlh2ZWVTQm5kS1k5bWMwT3RaRVpkK08xdTlRS2t0dTFxNTRYbCtUWHU2c3hLMU1sajRjM3dYMytqdG1KMzY5UTVLMm5wM3ZqbjRFcVlERmw3WWlhRG43bzVaS1IwRDdGVU1QdWNnNzFIbWsyUHFjSGNRNGY2Y2xWeUhHd0lEQVFBQm80SUJzakNDQWE0d0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQ0I1QVlEVlIwZ0JJSGNNSUhaTUlIV0Jnb3Foa2lHOXk4RENRQUFNSUhITURJR0NDc0dBUVVGQndJQkZpWm9kSFJ3T2k4dmQzZDNMbUZrYjJKbExtTnZiUzluYnk5bWJHRnphR0ZqWTJWemMxOWpjRENCa0FZSUt3WUJCUVVIQWdJd2dZTWFnWUJVYUdseklHTmxjblJwWm1sallYUmxJR2hoY3lCaVpXVnVJR2x6YzNWbFpDQnBiaUJoWTJOdmNtUmhibU5sSUhkcGRHZ2dkR2hsSUVGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3lCRFVGTWdiRzlqWVhSbFpDQmhkQ0JvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRUNNQTRHQTFVZER3RUIvd1FFQXdJQkJqQktCZ05WSFI4RVF6QkJNRCtnUGFBN2hqbG9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2UVdSdlltVXZSbXhoYzJoQlkyTmxjM05KYm5SbGNtMWxaR2xoZEdWRFFTNWpjbXd3SFFZRFZSME9CQllFRkJva1p3OGtQaWdwc0xuaWRZNkZBVjJsbjlETU1COEdBMVVkSXdRWU1CYUFGUE11ZFdGRUdVQ0trWXhPc1ZaYVRzOU1RRGZ3TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBVnF6Si8zcnlZZFpCanFNZExKcGM1aE5haXVEbWVROXJiOGNFNzFOL21TUkFSZCtjaStBZ2VDMjhnRVk5UTB6QnhVY1hkeDRhQkdpWVpZNFhhQ1habXFJZEdEOEsxMWJtUXhoVkpTOFRaaWpwOVduWkVwenhydG0vUFhsemJiWFNlNWU1SEVRVnR6WnFYT29vYzAvUXkyNWpWNjByODZ4ZTVwWWpjc290MjVEd2xudThqa0xzSFdSRGJvSVNYbDBJRE55U3gyMWpnbWMvSjFLa1IvMzVxRmxtQjhKRWxBN2YwaDRCTnJYbjNKeklrNERJVEtNamt6WnIycXljQmZmUlJlcCtENkh2UTBQNk9oMDJXVVVxWlVCajRrbDB4ekFnUmkrYzZCeUw0TnQ1d3ZzSXc3WjhFNmVsZ2NHampMYUI2bEhRTk0yWUkzMjIxUzRCV0NzamNNWUlCZmpDQ0FYb0NBUUV3ZVRCbE1Rc3dDUVlEVlFRR0V3SlZVekVqTUNFR0ExVUVDaE1hUVdSdlltVWdVM2x6ZEdWdGN5QkpibU52Y25CdmNtRjBaV1F4TVRBdkJnTlZCQU1US0VGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3lCRGRYTjBiMjFsY2lCQ2IyOTBjM1J5WVhBZ1EwRUNFQ1NFaGRyemNwc084dkdqdkdHWVBid3dDUVlGS3c0REFob0ZBS0JkTUJnR0NTcUdTSWIzRFFFSkF6RUxCZ2txaGtpRzl3MEJCd0V3SEFZSktvWklodmNOQVFrRk1ROFhEVEV5TURreU1ERXdNRGsxTlZvd0l3WUpLb1pJaHZjTkFRa0VNUllFRkIweU16VzlvYmJwaHUrVm1ZT1NxRDM1Y1loV01BMEdDU3FHU0liM0RRRUJBUVVBQklHQXBlWGRIdzVqYXNEMUVENklBYXBsOC9CKzlLZVVkL3lYUEd1dzR3UmdMYUo3WWV2VTFvaDUzaE1HeVZMZUZLRmRRbVVnS2Eza0RDYlRrbWNwRXc5T0x3cEtDZ3MrMXpOOHNNOTFja1JoenpRaWtNRUNwU1kvK2Y4OWVSUDZ1bno3elN2RGg5andsdGJ5Slk4VWdnbnRwSDRTUFdIczFac1RnQzNRYXFqUVFXYz0AAAkAAAkAAAkAAAkAAAk=
</drmAdditionalHeader>
Original comment by andrewcr...@gmail.com
on 7 Nov 2012 at 6:58
Attachments:
[deleted comment]
ok i have been doing some packet capturing here is the wireshark file with the
relevant information relating to 4od packet 1330 has some interesting
information in the http data section, then packet 1405 acknowledges the packet
1330 and it the server then keeps on repeating this. this could be the key to
time team episode above Data:
7b2265787069726564223a66616c73652c22617373657449...
Original comment by andrewcr...@gmail.com
on 7 Nov 2012 at 9:21
Attachments:
david i just took a look at your link and here is something more interesting
<bootstrapInfo profile="named" id="bootstrap1242">
AAAAi2Fic3QAAAAAAAAAAgAAAAPoAAAAAAAVwoAAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAAB
AAAAAQAAAWUBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAPoAAAAWUAAAAAABW6gAAA
B9AAAAAAAAAAAAAAAAAAAAAAAA==
</bootstrapInfo>
<drmAdditionalHeader drmContentId="323443" id="drmMetadata8468">
AgARfEFkZGl0aW9uYWxIZWFkZXIDAApFbmNyeXB0aW9uAwAHVmVyc2lvbgBAAAAAAAAAAAAGTWV0aG9k
AgAIU3RhbmRhcmQABUZsYWdzAAAAAAAAAAAAAAZQYXJhbXMDAAdWZXJzaW9uAD/wAAAAAAAAABNFbmNy
eXB0aW9uQWxnb3JpdGhtAgAHQUVTLUNCQwAQRW5jcnlwdGlvblBhcmFtcwMACUtleUxlbmd0aABAMAAA
AAAAAAAACQAHS2V5SW5mbwMAB3N1YlR5cGUCAA1GbGFzaEFjY2Vzc3YyAA5GTVJNU19NRVRBREFUQQMA
CE1ldGFkYXRhAiCETUlJWVhnWUpLb1pJaHZjTkFRY0NvSUlZVHpDQ0dFc0NBUUV4Q3pBSkJnVXJEZ01D
R2dVQU1JSUlEUVlKS29aSWh2Y05BUWNCb0lJSC9nU0NCL293Z2dmMkFnRUNNSUlCYkRDQ0FXZ0NBUU1D
QVFJRUpFWTROVVV6TlRrNUxUVXpOVEF0TXpGRU1TMUNOekUwTFRJM1JUQkdSVEZETmtRM05UR0I0REJa
RENsamIyMHVZV1J2WW1VdVpteGhjMmhoWTJObGMzTXVjbWxuYUhSekxteHBZMlZ1YzJWVmMyRm5aYUFz
TVNvd0VBWUpLb1pJaHZjdkF3WU9vQU1CQWY4d0ZnWUpLb1pJaHZjdkF3WU5vQU1CQWYraEJBSUNBU3d3
Z1lJTUlXTnZiUzVoWkc5aVpTNW1iR0Z6YUdGalkyVnpjeTV5YVdkb2RITXVjR3hoZWFCZE1Wc3dGd1lK
S29aSWh2Y3ZBd1lFb0FNQkFmK2hCVEFEQWdFQ01CNEdDU3FHU0liM0x3TUdCNkFEQVFIL29Rd3dDcUFE
Q2dFQ29RTUtBUU13SUFZSktvWklodmN2QXdZTG9BTUJBZitoRGpBTW9BTUtBUUtoQlRBRENnRURvQXdN
Q2pNdU1DNHhMakEyTlRXaEVBd09RelF0Vms5RUxUUnZaQzV3YjJ5ak1qRXdNQzRNS21OdmJTNWhaRzlp
WlM1bWJHRnphR0ZqWTJWemN5NWhkSFJ5YVdKMWRHVnpMbUZ1YjI1NWJXOTFjekVBcGdNQkFmOHhnZ1R3
TUlJRTdERWtEQ0pvZEhSd09pOHZabUY0TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSUlF
d2pDQ0E2cWdBd0lCQWdJUWJDcnpZWE1xTGpWeW40ZXh5ZVRscURBTkJna3Foa2lHOXcwQkFRc0ZBREJs
TVFzd0NRWURWUVFHRXdKVlV6RWpNQ0VHQTFVRUNoTWFRV1J2WW1VZ1UzbHpkR1Z0Y3lCSmJtTnZjbkJ2
Y21GMFpXUXhNVEF2QmdOVkJBTVRLRUZrYjJKbElFWnNZWE5vSUVGalkyVnpjeUJEZFhOMGIyMWxjaUJD
YjI5MGMzUnlZWEFnUTBFd0hoY05NVEl3TVRJME1EQXdNREF3V2hjTk1UUXdNVEl6TWpNMU9UVTVXakNC
aHpFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1VHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3
YjNKaGRHVmtNUkl3RUFZRFZRUUxGQWxVY21GdWMzQnZjblF4R3pBWkJnTlZCQXNVRWtGa2IySmxJRVpz
WVhOb0lFRmpZMlZ6Y3pFaU1DQUdBMVVFQXd3WlVrVkVRa1ZGVFVWRVNVRXRWRk5RVkMweU1ERXlNREV5
TXpDQm56QU5CZ2txaGtpRzl3MEJBUUVGQUFPQmpRQXdnWWtDZ1lFQTNjbGRtNFNIMVJSR0prV09lUUtB
ZklDMnlGc21kMGNUSFM5UUtucFNzdEEwaXJibE9lSTU2V3VmcXpYb0QvUEtmSEZ6OWhXak50OUtoWFJo
dTQ2U0NPeUNxUkk0REtZZDgxeXVtaDZXblQ5N1l0bmJIV0poY2l1aUg3bkFvNTBDbFNOb2JCWEkvUm1Y
ZXJKUzZ0WkJYb09TL3BPamlkRTJ4eW1abkt3d0Rma0NBd0VBQWFPQ0FjMHdnZ0hKTUdrR0ExVWRId1Jp
TUdBd1hxQmNvRnFHV0doMGRIQTZMeTlqY213ekxtRmtiMkpsTG1OdmJTOUJaRzlpWlZONWMzUmxiWE5K
Ym1OdmNuQnZjbUYwWldSR2JHRnphRUZqWTJWemMwTjFjM1J2YldWeVFtOXZkSE4wY21Gd0wweGhkR1Z6
ZEVOU1RDNWpjbXd3Q3dZRFZSMFBCQVFEQWdTd01JSGtCZ05WSFNBRWdkd3dnZGt3Z2RZR0NpcUdTSWIz
THdNSkFBQXdnY2N3TWdZSUt3WUJCUVVIQWdFV0ptaDBkSEE2THk5M2QzY3VZV1J2WW1VdVkyOXRMMmR2
TDJac1lYTm9ZV05qWlhOelgyTndNSUdRQmdnckJnRUZCUWNDQWpDQmd4cUJnRlJvYVhNZ1kyVnlkR2xt
YVdOaGRHVWdhR0Z6SUdKbFpXNGdhWE56ZFdWa0lHbHVJR0ZqWTI5eVpHRnVZMlVnZDJsMGFDQjBhR1Vn
UVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56SUVOUVV5QnNiMk5oZEdWa0lHRjBJR2gwZEhBNkx5OTNkM2N1
WVdSdlltVXVZMjl0TDJkdkwyWnNZWE5vWVdOalpYTnpYMk53TUI4R0ExVWRJd1FZTUJhQUZCb2tadzhr
UGlncHNMbmlkWTZGQVYybG45RE1NQjBHQTFVZERnUVdCQlRWdWYwM2R2STRrYjJ5SjdHOWgvM3JPRURk
MERBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRTNNQkVHQ2lxR1NJYjNMd01KQWdVRUF3SUJBREFO
QmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBWnFlQlUyQm1ld2hzdDducGVDZ04vcHhndnpFZGZVNUdacDhk
Uld4cVVFRGVtSVZNdkNwRy92TWxRYWFuZHl3OVBQSnJQTW1RblhHR2V3SUpyTko4YjQ2MnJuc3ZLb1Zk
WXJVYVMxeUI0dU96eHdHRzRzdUF5bWdWNkhCcTJsTXIyUUtOaWg4SzRQWjYrdFBucmhuU2ZBd0wzUEJ1
U3I2MVFLcGN2RWZyM253QXQxQmcyUEVaR3BSalJMUjcySE5RVjJGV3FBa0tsait1RWwzRFJvTmtiUmNZ
b0JVRHNGQS8ydGpCYmM1WXBXZTRFOTJaMGtMZkhuZ1gwUElqL0h0aWFubnY4S3czOEowMnhsZGZzWFUy
SzYwNWVlMXd3YzJNcHRwZXBVM0FrZHR2WlgrMUJGWWJYZEVKYmROakNVN3RiQ2JmODVQNHhxMjQxc2w5
aWRaRnBqQ0I4Z1FKVFhwSmVrNUVVWG9BR0E4eU1ERXlNVEF6TVRFd01EZ3dOVm9FZ1lCbHRlOEhheVBI
QUpMNzA3QmtNdmNFSnFsY0lyTFA1d1VTdkRLN09NUWx6M1M1ci9KMXpQTzhmTk5saDRRLzNqa3EzYkJM
S21tbzY1U3FncXJuZ05LZHl0K3gycE13Z0hkZVFUenQ2dGRSSXhSZU1aR0JmbnN5YkFMRlJTQUJMTXh5
UkIwZEk4eHNMSE40TVBkTU1ieUVkMkRGbWt2T3dTaHltc3NBYkhMS0FqQWhCZ2txaGtpRzl5OERDQUlF
Rk9pRm1XT1hwS0xXTmM1SWVBTkJOWndDUmZkbG9BZ0VCak15TXpRME02RWtEQ0pvZEhSd09pOHZabUY0
TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSGt3WlRFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFo
QmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNVEV3THdZRFZRUURFeWhC
Wkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nUTNWemRHOXRaWElnUW05dmRITjBjbUZ3SUVOQkFoQWtoSVhh
ODNLYkR2THhvN3hobUQyOG9CME1Hekl1TUM0eU1ERXlNVEF6TVRFd01EZ3dOWHBmVWtWTVJVRlRSYUND
RHFRd2dnVEJNSUlEcWFBREFnRUNBaEFraElYYTgzS2JEdkx4bzd4aG1EMjhNQTBHQ1NxR1NJYjNEUUVC
Q3dVQU1HVXhDekFKQmdOVkJBWVRBbFZUTVNNd0lRWURWUVFLRXhwQlpHOWlaU0JUZVhOMFpXMXpJRWx1
WTI5eWNHOXlZWFJsWkRFeE1DOEdBMVVFQXhNb1FXUnZZbVVnUm14aGMyZ2dRV05qWlhOeklFTjFjM1J2
YldWeUlFSnZiM1J6ZEhKaGNDQkRRVEFlRncweE1qQXhNalF3TURBd01EQmFGdzB4TkRBeE1qTXlNelU1
TlRsYU1JR0dNUXN3Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hRYVFXUnZZbVVnVTNsemRHVnRjeUJK
Ym1OdmNuQnZjbUYwWldReEVUQVBCZ05WQkFzVUNGQmhZMnRoWjJWeU1Sc3dHUVlEVlFRTEZCSkJaRzlp
WlNCR2JHRnphQ0JCWTJObGMzTXhJakFnQmdOVkJBTU1HVkpGUkVKRlJVMUZSRWxCTFZCTFIxSXRNakF4
TWpBeE1qTXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTFIwNlU5cG1jUjRocldX
S2Y5dWdLMUZGWEJzaEpMbTJTenhaYnliSEV1a1N4RGhYMHNTMWg1VDJLbHg0bUMrSjU2emExMHRXelFa
c2hzaSt2czRCdzc2TzRwUTVhQ0pLYXhzT0N5NHppUzY0QzZmQTBsaUdEQ21Zdy9GME84ZlZCWjMrVTdz
NjJoM1lpUEEwVUMxdmU4SnBOY1c1Yk83SnJxcU4rd1hmenF6QWdNQkFBR2pnZ0hOTUlJQnlUQnBCZ05W
SFI4RVlqQmdNRjZnWEtCYWhsaG9kSFJ3T2k4dlkzSnNNeTVoWkc5aVpTNWpiMjB2UVdSdlltVlRlWE4w
WlcxelNXNWpiM0p3YjNKaGRHVmtSbXhoYzJoQlkyTmxjM05EZFhOMGIyMWxja0p2YjNSemRISmhjQzlN
WVhSbGMzUkRVa3d1WTNKc01Bc0dBMVVkRHdRRUF3SUVzRENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29x
aGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52
YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05s
Y25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dn
ZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2
ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQWZCZ05WSFNNRUdEQVdnQlFh
SkdjUEpENG9LYkM1NG5XT2hRRmRwWi9RekRBZEJnTlZIUTRFRmdRVTJkaGE0K3lMYkJ0Z3huaVBZSW9K
eEJ6eEFwQXdGUVlEVlIwbEJBNHdEQVlLS29aSWh2Y3ZBd2tCTmpBUkJnb3Foa2lHOXk4RENRSUZCQU1D
QVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDVm80ZVU4SnowbmRlUzU2Qi9lQ3JScEtxNFp2N1NC
VWRLUnlLZXAyS1JmbEZRNXV0SEZsVWlVMlRTdk9vZ3hDdHhsSjZndHhwOXZnYmJvVng4N1dTV2VvMWVq
SmtHbUV3SjNaOTQ4ZFlZZHRZMFl3My9KWmJEK0doeTZhLzlyV1dYSWpJQlFiUk5mdmVYVUxpYW5wZG43
Uk9jQldzY01JalU2UFord2tDQ1B6YTkwTVBsTi9DRWNFdDlXclZQTmtibzM5M1l6QkRLOTF5azVra0p5
UzF3LzFValpHeFRvYW1yWDJENWlSV0d3aDVUbzV2LzRnbSsxcTVTZkZXN0lJSjlqKzg1dTU4TUJFaUhL
Q3pVUEI1TkJ3UlZwZ1VmelN6V2tLQVo3NDdWOVVncUFsSWsycnBWcW16QTlEN3Zna0JVYUlBWGpYOUxJ
M1V3cTM0MlZCUFV3Z2dUVk1JSUR2YUFEQWdFQ0FoQTB0bnBuZUxkNVJDYnBDQlFuOGwydU1BMEdDU3FH
U0liM0RRRUJDd1VBTUZjeEN6QUpCZ05WQkFZVEFsVlRNU013SVFZRFZRUUtFeHBCWkc5aVpTQlRlWE4w
WlcxeklFbHVZMjl5Y0c5eVlYUmxaREVqTUNFR0ExVUVBeE1hUVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56
SUZKdmIzUWdRMEV3SGhjTk1Ea3hNVEV3TURBd01EQXdXaGNOTWpreE1UQTVNak0xT1RVNVdqQmZNUXN3
Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hNYVFXUnZZbVVnVTNsemRHVnRjeUJKYm1OdmNuQnZjbUYw
WldReEt6QXBCZ05WQkFNVElrRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkpiblJsY20xbFpHbGhkR1Vn
UTBFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUMrVndqYmgxVDZPT0k3
QW5zVy9rRG9OZVpscVhoWGhJNVcwaExJYSszZVBLTUNETGlLNSt3OGczTDU0VDlQRStRclpMQ2ZVUmts
alRPTWxJdVZrT0N4c0hZOFlKSGVXTTZxanVtT005SVVucisvOU1pNXQ1bWZTdEVRZHk4amRhZTUwSHd2
b3hHdE9YYlphNjNhbmN3Z2p2S3ZJMGZPSHJZeGsyK3g5U3R4czBseUpWdkRQT2JBQmQzNTZnMytXWXdn
UWFLOWdDSWI1UkpVeGR2UU1hNUgwWUNoZG5PcVEvcTZiT0lSRWllSmlRb0cvR2czcTJqT1NxWFJkcW11
ZUQ3VGVLSHg4d3Zzc0xPZlRTQVowV0g3Q0orYnh3eHVZNmVlbGdwSnM5bUhpVEh4UWFBcjMxYjZucDlR
Y0czYTJ2aXVhV21BNTN0NlBZalBjMUE3SWFqbEFnTUJBQUdqZ2dHVE1JSUJqekFPQmdOVkhROEJBZjhF
QkFNQ0FRWXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBVENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29x
aGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52
YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05s
Y25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dn
ZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2
ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQkNCZ05WSFI4RU96QTVNRGVn
TmFBemhqRm9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2UVdSdlltVXZSbXhoYzJoQlkyTmxjM05T
YjI5MFEwRXVZM0pzTUIwR0ExVWREZ1FXQkJUekxuVmhSQmxBaXBHTVRyRldXazdQVEVBMzhEQWZCZ05W
SFNNRUdEQVdnQlNIZlM4K0pnVEN4TGVNMEtyaWd6K1k5eXJlWmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9D
QVFFQW00YUZxai9sMG9HempZeFRTRjkxMFpRcldYZElhVGo1dFV6c0I0MVM5TnB3WUhPTkRKYXh6bWtv
bGhiSTJpVnYzd01JcEhMRE4ycG1mS20yRDZTbHliOU92cmhONU1Db2F6cEVWODgzVy9UUG5qRmd6cUU0
RVliNEFFRlJZRW9PVTdpNGFWUERVVHMzVDJKVHhENG9jZUJIQVBxbXcrQXFoSVk5eHpJbGlYY2NxVy9X
eHhUd2ZDWXFJOC9IdW5jNG02aVdKQTBWM1IxYTFMK0pEWVZiZE9NMlpxSXJBY3dVMjBPLzhUcS9xQlFL
NjZ1U0FjR0UwZHR2cFV0am04K1RNYlRoSHhkdENjMlJ6TGpYbFN0a1Q0YzFIdERlbVJrSk01RWk3ZWR4
djcvSklYWEMzTFFFYVhrWUFYWkQrVlc1REUvRnU0YmFkWSt4UE1VdVAvSXdsVENDQlFJd2dnUHFvQU1D
QVFJQ0VEd0V5eFBEVFMyekxnUDUvYlRpZFlRd0RRWUpLb1pJaHZjTkFRRUxCUUF3WHpFTE1Ba0dBMVVF
QmhNQ1ZWTXhJekFoQmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNU3N3
S1FZRFZRUURFeUpCWkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nU1c1MFpYSnRaV1JwWVhSbElFTkJNQjRY
RFRBNU1URXhNREF3TURBd01Gb1hEVEkwTVRFd09USXpOVGsxT1Zvd1pURUxNQWtHQTFVRUJoTUNWVk14
SXpBaEJnTlZCQW9UR2tGa2IySmxJRk41YzNSbGJYTWdTVzVqYjNKd2IzSmhkR1ZrTVRFd0x3WURWUVFE
RXloQlpHOWlaU0JHYkdGemFDQkJZMk5sYzNNZ1EzVnpkRzl0WlhJZ1FtOXZkSE4wY21Gd0lFTkJNSUlC
SWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXM4c1pJMTFGYWttSFpIaWJyaUVr
QWlHSGhaZ1RqanlVNU01UlI5NlFjSEQwUWlPeGVZNFE4RkFsSnFvVWNzT2RjbGIrT3lTMnJudFBWSXAw
VnlnZGR1Nm5TUzRTYWljUWNoUExKeEhqUy9FUlJrSTBhZXB2SFYxZWw2TGRjRFhRLzllVXZRbll3NjlS
TmRieVM5Q0hBZTI3R01QQmpwNFpLNHlkUFQ0U2VnSTZKYmw4L0FucHBBSWVyZ1BMS29HWVl4NmFmdEhB
aVViR1FIcUlHM1YxUmpacTU1Vlh2ZWVTQm5kS1k5bWMwT3RaRVpkK08xdTlRS2t0dTFxNTRYbCtUWHU2
c3hLMU1sajRjM3dYMytqdG1KMzY5UTVLMm5wM3ZqbjRFcVlERmw3WWlhRG43bzVaS1IwRDdGVU1QdWNn
NzFIbWsyUHFjSGNRNGY2Y2xWeUhHd0lEQVFBQm80SUJzakNDQWE0d0VnWURWUjBUQVFIL0JBZ3dCZ0VC
L3dJQkFEQ0I1QVlEVlIwZ0JJSGNNSUhaTUlIV0Jnb3Foa2lHOXk4RENRQUFNSUhITURJR0NDc0dBUVVG
QndJQkZpWm9kSFJ3T2k4dmQzZDNMbUZrYjJKbExtTnZiUzluYnk5bWJHRnphR0ZqWTJWemMxOWpjRENC
a0FZSUt3WUJCUVVIQWdJd2dZTWFnWUJVYUdseklHTmxjblJwWm1sallYUmxJR2hoY3lCaVpXVnVJR2x6
YzNWbFpDQnBiaUJoWTJOdmNtUmhibU5sSUhkcGRHZ2dkR2hsSUVGa2IySmxJRVpzWVhOb0lFRmpZMlZ6
Y3lCRFVGTWdiRzlqWVhSbFpDQmhkQ0JvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6
YUdGalkyVnpjMTlqY0RBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRUNNQTRHQTFVZER3RUIvd1FF
QXdJQkJqQktCZ05WSFI4RVF6QkJNRCtnUGFBN2hqbG9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2
UVdSdlltVXZSbXhoYzJoQlkyTmxjM05KYm5SbGNtMWxaR2xoZEdWRFFTNWpjbXd3SFFZRFZSME9CQllF
RkJva1p3OGtQaWdwc0xuaWRZNkZBVjJsbjlETU1COEdBMVVkSXdRWU1CYUFGUE11ZFdGRUdVQ0trWXhP
c1ZaYVRzOU1RRGZ3TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBVnF6Si8zcnlZZFpCanFNZExKcGM1
aE5haXVEbWVROXJiOGNFNzFOL21TUkFSZCtjaStBZ2VDMjhnRVk5UTB6QnhVY1hkeDRhQkdpWVpZNFhh
Q1habXFJZEdEOEsxMWJtUXhoVkpTOFRaaWpwOVduWkVwenhydG0vUFhsemJiWFNlNWU1SEVRVnR6WnFY
T29vYzAvUXkyNWpWNjByODZ4ZTVwWWpjc290MjVEd2xudThqa0xzSFdSRGJvSVNYbDBJRE55U3gyMWpn
bWMvSjFLa1IvMzVxRmxtQjhKRWxBN2YwaDRCTnJYbjNKeklrNERJVEtNamt6WnIycXljQmZmUlJlcCtE
Nkh2UTBQNk9oMDJXVVVxWlVCajRrbDB4ekFnUmkrYzZCeUw0TnQ1d3ZzSXc3WjhFNmVsZ2NHampMYUI2
bEhRTk0yWUkzMjIxUzRCV0NzamNNWUlCZmpDQ0FYb0NBUUV3ZVRCbE1Rc3dDUVlEVlFRR0V3SlZVekVq
TUNFR0ExVUVDaE1hUVdSdlltVWdVM2x6ZEdWdGN5QkpibU52Y25CdmNtRjBaV1F4TVRBdkJnTlZCQU1U
S0VGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3lCRGRYTjBiMjFsY2lCQ2IyOTBjM1J5WVhBZ1EwRUNFQ1NF
aGRyemNwc084dkdqdkdHWVBid3dDUVlGS3c0REFob0ZBS0JkTUJnR0NTcUdTSWIzRFFFSkF6RUxCZ2tx
aGtpRzl3MEJCd0V3SEFZSktvWklodmNOQVFrRk1ROFhEVEV5TVRBek1URXdNRGd3TlZvd0l3WUpLb1pJ
aHZjTkFRa0VNUllFRlBHOWhWTXp1UENUT0FVQWVMVWtodmRVL0lBNE1BMEdDU3FHU0liM0RRRUJBUVVB
QklHQVg4TTgxWjNCT0p1WXpaejRoWkhnc1F4Qm9XOTl6TmZHTU1wbmY0UndrK2VmYzhtT0VndWlFdDVz
U2syNW0vMGdrRlZJS1QwK0N5RVhwRXh2NE15czhJYXFQS3VmbjBQbVZzSHhlbzIzTjBSVW9peWZ0NzRR
TS9ZMTNQTmlsbnRZaUo2KzBZUStsUDNCWmRtSWpPNGlKWStLczU2K3lpSkZmeGhXTTJBM0U5WT0AAAkA
AAkAAAkAAAkAAAk=
</drmAdditionalHeader>
<media streamId="CH4_08_02_24_52710219001001_001_16x9_0500000_"
url="CH4_08_02_24_52710219001001_001_16x9_0500000_" bitrate="400"
bootstrapInfoId="bootstrap1242" drmAdditionalHeaderId="drmMetadata8468">
<metadata>
AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAlkhc17kArwAFd2lkdGgAQIAAAAAAAAAABmhlaWdo
dABAcgAAAAAAAAAMdmlkZW9jb2RlY2lkAgAEYXZjMQAMYXVkaW9jb2RlY2lkAgAEbXA0YQAKYXZjcHJv
ZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD4AAAAAAAAABmFhY2FvdAAAAAAAAAAAAAAOdmlkZW9mcmFt
ZXJhdGUAQDkAAAAAAAAAD2F1ZGlvc2FtcGxlcmF0ZQBA13AAAAAAAAANYXVkaW9jaGFubmVscwBAAAAA
AAAAAAAJdHJhY2tpbmZvCgAAAAIDAAZsZW5ndGgAQYD/zoAAAAAACXRpbWVzY2FsZQBA2GoAAAAAAAAI
bGFuZ3VhZ2UCAANlbmcAAAkDAAZsZW5ndGgAQYBSAAAAAAAACXRpbWVzY2FsZQBA13AAAAAAAAAIbGFu
Z3VhZ2UCAANlbmcAAAkAB2N1c3RkZWYKAAAAAAAACQ==
</metadata>
</media>
note how the media file calls the bootstrap and drmheaderinfo and has it own
metadata that is where the key is
Original comment by andrewcr...@gmail.com
on 7 Nov 2012 at 9:26
and here is base64 decode of the drm string david posted
�|AdditionalHeader�
Encryption�Version�@��������Method�Standard�Flags�
�����������Params�Version�?��������Enc
ryptionAlgorithm�AES-CBC�EncryptionParams� KeyLength�@0�����
����� �KeyInfo�subType�
FlashAccessv2�FMRMS_METADATA�Metadata
�MIIYXgYJKoZIhvcNAQcCoIIYTzCCGEsCAQExCzAJBgUrDgMCGgUAMIIIDQYJKoZIhvcNAQcBoIIH/
gSCB/owggf2AgECMIIBbDCCAWgCAQMCAQIEJEY4NUUzNTk5LTUzNTAtMzFEMS1CNzE0LTI3RTBGRTFDN
kQ3NTGB4DBZDCljb20uYWRvYmUuZmxhc2hhY2Nlc3MucmlnaHRzLmxpY2Vuc2VVc2FnZaAsMSowEAYJK
oZIhvcvAwYOoAMBAf8wFgYJKoZIhvcvAwYNoAMBAf+hBAICASwwgYIMIWNvbS5hZG9iZS5mbGFzaGFjY
2Vzcy5yaWdodHMucGxheaBdMVswFwYJKoZIhvcvAwYEoAMBAf+hBTADAgECMB4GCSqGSIb3LwMGB6ADA
QH/oQwwCqADCgECoQMKAQMwIAYJKoZIhvcvAwYLoAMBAf+hDjAMoAMKAQKhBTADCgEDoAwMCjMuMC4xL
jA2NTWhEAwOQzQtVk9ELTRvZC5wb2yjMjEwMC4MKmNvbS5hZG9iZS5mbGFzaGFjY2Vzcy5hdHRyaWJ1d
GVzLmFub255bW91czEApgMBAf8xggTwMIIE7DEkDCJodHRwOi8vZmF4LmM0LmF3cy5yZWRiZWVtZWRpY
S5jb20vMIIEwjCCA6qgAwIBAgIQbCrzYXMqLjVyn4exyeTlqDANBgkqhkiG9w0BAQsFADBlMQswCQYDV
QQGEwJVUzEjMCEGA1UEChMaQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQxMTAvBgNVBAMTKEFkb2JlI
EZsYXNoIEFjY2VzcyBDdXN0b21lciBCb290c3RyYXAgQ0EwHhcNMTIwMTI0MDAwMDAwWhcNMTQwMTIzM
jM1OTU5WjCBhzELMAkGA1UEBhMCVVMxIzAhBgNVBAoUGkFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkM
RIwEAYDVQQLFAlUcmFuc3BvcnQxGzAZBgNVBAsUEkFkb2JlIEZsYXNoIEFjY2VzczEiMCAGA1UEAwwZU
kVEQkVFTUVESUEtVFNQVC0yMDEyMDEyMzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3cldm4SH1
RRGJkWOeQKAfIC2yFsmd0cTHS9QKnpSstA0irblOeI56WufqzXoD/PKfHFz9hWjNt9KhXRhu46SCOyCq
RI4DKYd81yumh6WnT97YtnbHWJhciuiH7nAo50ClSNobBXI/RmXerJS6tZBXoOS/pOjidE2xymZnKwwD
fkCAwEAAaOCAc0wggHJMGkGA1UdHwRiMGAwXqBcoFqGWGh0dHA6Ly9jcmwzLmFkb2JlLmNvbS9BZG9iZ
VN5c3RlbXNJbmNvcnBvcmF0ZWRGbGFzaEFjY2Vzc0N1c3RvbWVyQm9vdHN0cmFwL0xhdGVzdENSTC5jc
mwwCwYDVR0PBAQDAgSwMIHkBgNVHSAEgdwwgdkwgdYGCiqGSIb3LwMJAAAwgccwMgYIKwYBBQUHAgEWJ
mh0dHA6Ly93d3cuYWRvYmUuY29tL2dvL2ZsYXNoYWNjZXNzX2NwMIGQBggrBgEFBQcCAjCBgxqBgFRoa
XMgY2VydGlmaWNhdGUgaGFzIGJlZW4gaXNzdWVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQWRvYmUgR
mxhc2ggQWNjZXNzIENQUyBsb2NhdGVkIGF0IGh0dHA6Ly93d3cuYWRvYmUuY29tL2dvL2ZsYXNoYWNjZ
XNzX2NwMB8GA1UdIwQYMBaAFBokZw8kPigpsLnidY6FAV2ln9DMMB0GA1UdDgQWBBTVuf03dvI4kb2yJ
7G9h/3rOEDd0DAVBgNVHSUEDjAMBgoqhkiG9y8DCQE3MBEGCiqGSIb3LwMJAgUEAwIBADANBgkqhkiG9
w0BAQsFAAOCAQEAZqeBU2Bmewhst7npeCgN/pxgvzEdfU5GZp8dRWxqUEDemIVMvCpG/vMlQaandyw9P
PJrPMmQnXGGewIJrNJ8b462rnsvKoVdYrUaS1yB4uOzxwGG4suAymgV6HBq2lMr2QKNih8K4PZ6+tPnr
hnSfAwL3PBuSr61QKpcvEfr3nwAt1Bg2PEZGpRjRLR72HNQV2FWqAkKlj+uEl3DRoNkbRcYoBUDsFA/2
tjBbc5YpWe4E92Z0kLfHngX0PIj/Htiannv8Kw38J02xldfsXU2K605ee1wwc2MptpepU3AkdtvZX+1B
FYbXdEJbdNjCU7tbCbf85P4xq241sl9idZFpjCB8gQJTXpJek5EUXoAGA8yMDEyMTAzMTEwMDgwNVoEg
YBlte8HayPHAJL707BkMvcEJqlcIrLP5wUSvDK7OMQlz3S5r/J1zPO8fNNlh4Q/3jkq3bBLKmmo65Sqg
qrngNKdyt+x2pMwgHdeQTzt6tdRIxReMZGBfnsybALFRSABLMxyRB0dI8xsLHN4MPdMMbyEd2DFmkvOw
ShymssAbHLKAjAhBgkqhkiG9y8DCAIEFOiFmWOXpKLWNc5IeANBNZwCRfdloAgEBjMyMzQ0M6EkDCJod
HRwOi8vZmF4LmM0LmF3cy5yZWRiZWVtZWRpYS5jb20vMHkwZTELMAkGA1UEBhMCVVMxIzAhBgNVBAoTG
kFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkMTEwLwYDVQQDEyhBZG9iZSBGbGFzaCBBY2Nlc3MgQ3Vzd
G9tZXIgQm9vdHN0cmFwIENBAhAkhIXa83KbDvLxo7xhmD28oB0MGzIuMC4yMDEyMTAzMTEwMDgwNXpfU
kVMRUFTRaCCDqQwggTBMIIDqaADAgECAhAkhIXa83KbDvLxo7xhmD28MA0GCSqGSIb3DQEBCwUAMGUxC
zAJBgNVBAYTAlVTMSMwIQYDVQQKExpBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZDExMC8GA1UEAxMoQ
WRvYmUgRmxhc2ggQWNjZXNzIEN1c3RvbWVyIEJvb3RzdHJhcCBDQTAeFw0xMjAxMjQwMDAwMDBaFw0xN
DAxMjMyMzU5NTlaMIGGMQswCQYDVQQGEwJVUzEjMCEGA1UEChQaQWRvYmUgU3lzdGVtcyBJbmNvcnBvc
mF0ZWQxETAPBgNVBAsUCFBhY2thZ2VyMRswGQYDVQQLFBJBZG9iZSBGbGFzaCBBY2Nlc3MxIjAgBgNVB
AMMGVJFREJFRU1FRElBLVBLR1ItMjAxMjAxMjMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALR06
U9pmcR4hrWWKf9ugK1FFXBshJLm2SzxZbybHEukSxDhX0sS1h5T2Klx4mC+J56za10tWzQZshsi+vs4B
w76O4pQ5aCJKaxsOCy4ziS64C6fA0liGDCmYw/F0O8fVBZ3+U7s62h3YiPA0UC1ve8JpNcW5bO7JrqqN
+wXfzqzAgMBAAGjggHNMIIByTBpBgNVHR8EYjBgMF6gXKBahlhodHRwOi8vY3JsMy5hZG9iZS5jb20vQ
WRvYmVTeXN0ZW1zSW5jb3Jwb3JhdGVkRmxhc2hBY2Nlc3NDdXN0b21lckJvb3RzdHJhcC9MYXRlc3RDU
kwuY3JsMAsGA1UdDwQEAwIEsDCB5AYDVR0gBIHcMIHZMIHWBgoqhkiG9y8DCQAAMIHHMDIGCCsGAQUFB
wIBFiZodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDCBkAYIKwYBBQUHAgIwgYMag
YBUaGlzIGNlcnRpZmljYXRlIGhhcyBiZWVuIGlzc3VlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEFkb
2JlIEZsYXNoIEFjY2VzcyBDUFMgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFza
GFjY2Vzc19jcDAfBgNVHSMEGDAWgBQaJGcPJD4oKbC54nWOhQFdpZ/QzDAdBgNVHQ4EFgQU2dha4+yLb
BtgxniPYIoJxBzxApAwFQYDVR0lBA4wDAYKKoZIhvcvAwkBNjARBgoqhkiG9y8DCQIFBAMCAQAwDQYJK
oZIhvcNAQELBQADggEBACVo4eU8Jz0ndeS56B/eCrRpKq4Zv7SBUdKRyKep2KRflFQ5utHFlUiU2TSvO
ogxCtxlJ6gtxp9vgbboVx87WSWeo1ejJkGmEwJ3Z948dYYdtY0Yw3/JZbD+Ghy6a/9rWWXIjIBQbRNfv
eXULianpdn7ROcBWscMIjU6PZ+wkCCPza90MPlN/CEcEt9WrVPNkbo393YzBDK91yk5kkJyS1w/1UjZG
xToamrX2D5iRWGwh5To5v/4gm+1q5SfFW7IIJ9j+85u58MBEiHKCzUPB5NBwRVpgUfzSzWkKAZ747V9U
gqAlIk2rpVqmzA9D7vgkBUaIAXjX9LI3Uwq342VBPUwggTVMIIDvaADAgECAhA0tnpneLd5RCbpCBQn8
l2uMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNVBAYTAlVTMSMwIQYDVQQKExpBZG9iZSBTeXN0ZW1zIEluY
29ycG9yYXRlZDEjMCEGA1UEAxMaQWRvYmUgRmxhc2ggQWNjZXNzIFJvb3QgQ0EwHhcNMDkxMTEwMDAwM
DAwWhcNMjkxMTA5MjM1OTU5WjBfMQswCQYDVQQGEwJVUzEjMCEGA1UEChMaQWRvYmUgU3lzdGVtcyBJb
mNvcnBvcmF0ZWQxKzApBgNVBAMTIkFkb2JlIEZsYXNoIEFjY2VzcyBJbnRlcm1lZGlhdGUgQ0EwggEiM
A0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+Vwjbh1T6OOI7AnsW/kDoNeZlqXhXhI5W0hLIa+3eP
KMCDLiK5+w8g3L54T9PE+QrZLCfURkljTOMlIuVkOCxsHY8YJHeWM6qjumOM9IUnr+/9Mi5t5mfStEQd
y8jdae50HwvoxGtOXbZa63ancwgjvKvI0fOHrYxk2+x9Stxs0lyJVvDPObABd356g3+WYwgQaK9gCIb5
RJUxdvQMa5H0YChdnOqQ/q6bOIREieJiQoG/Gg3q2jOSqXRdqmueD7TeKHx8wvssLOfTSAZ0WH7CJ+bx
wxuY6eelgpJs9mHiTHxQaAr31b6np9QcG3a2viuaWmA53t6PYjPc1A7IajlAgMBAAGjggGTMIIBjzAOB
gNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATCB5AYDVR0gBIHcMIHZMIHWBgoqhkiG9y8DC
QAAMIHHMDIGCCsGAQUFBwIBFiZodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDCBk
AYIKwYBBQUHAgIwgYMagYBUaGlzIGNlcnRpZmljYXRlIGhhcyBiZWVuIGlzc3VlZCBpbiBhY2NvcmRhb
mNlIHdpdGggdGhlIEFkb2JlIEZsYXNoIEFjY2VzcyBDUFMgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFkb
2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMi5hZG9iZ
S5jb20vQWRvYmUvRmxhc2hBY2Nlc3NSb290Q0EuY3JsMB0GA1UdDgQWBBTzLnVhRBlAipGMTrFWWk7PT
EA38DAfBgNVHSMEGDAWgBSHfS8+JgTCxLeM0Krigz+Y9yreZjANBgkqhkiG9w0BAQsFAAOCAQEAm4aFq
j/l0oGzjYxTSF910ZQrWXdIaTj5tUzsB41S9NpwYHONDJaxzmkolhbI2iVv3wMIpHLDN2pmfKm2D6Sly
b9OvrhN5MCoazpEV883W/TPnjFgzqE4EYb4AEFRYEoOU7i4aVPDUTs3T2JTxD4oceBHAPqmw+AqhIY9x
zIliXccqW/WxxTwfCYqI8/Hunc4m6iWJA0V3R1a1L+JDYVbdOM2ZqIrAcwU20O/8Tq/qBQK66uSAcGE0
dtvpUtjm8+TMbThHxdtCc2RzLjXlStkT4c1HtDemRkJM5Ei7edxv7/JIXXC3LQEaXkYAXZD+VW5DE/Fu
4badY+xPMUuP/IwlTCCBQIwggPqoAMCAQICEDwEyxPDTS2zLgP5/bTidYQwDQYJKoZIhvcNAQELBQAwX
zELMAkGA1UEBhMCVVMxIzAhBgNVBAoTGkFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkMSswKQYDVQQDE
yJBZG9iZSBGbGFzaCBBY2Nlc3MgSW50ZXJtZWRpYXRlIENBMB4XDTA5MTExMDAwMDAwMFoXDTI0MTEwO
TIzNTk1OVowZTELMAkGA1UEBhMCVVMxIzAhBgNVBAoTGkFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkM
TEwLwYDVQQDEyhBZG9iZSBGbGFzaCBBY2Nlc3MgQ3VzdG9tZXIgQm9vdHN0cmFwIENBMIIBIjANBgkqh
kiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs8sZI11FakmHZHibriEkAiGHhZgTjjyU5M5RR96QcHD0QiOxe
Y4Q8FAlJqoUcsOdclb+OyS2rntPVIp0Vygddu6nSS4SaicQchPLJxHjS/ERRkI0aepvHV1el6LdcDXQ/
9eUvQnYw69RNdbyS9CHAe27GMPBjp4ZK4ydPT4SegI6Jbl8/AnppAIergPLKoGYYx6aftHAiUbGQHqIG
3V1RjZq55VXveeSBndKY9mc0OtZEZd+O1u9QKktu1q54Xl+TXu6sxK1Mlj4c3wX3+jtmJ369Q5K2np3v
jn4EqYDFl7YiaDn7o5ZKR0D7FUMPucg71Hmk2PqcHcQ4f6clVyHGwIDAQABo4IBsjCCAa4wEgYDVR0TA
QH/BAgwBgEB/wIBADCB5AYDVR0gBIHcMIHZMIHWBgoqhkiG9y8DCQAAMIHHMDIGCCsGAQUFBwIBFiZod
HRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDCBkAYIKwYBBQUHAgIwgYMagYBUaGlzI
GNlcnRpZmljYXRlIGhhcyBiZWVuIGlzc3VlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEFkb2JlIEZsY
XNoIEFjY2VzcyBDUFMgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc
19jcDAVBgNVHSUEDjAMBgoqhkiG9y8DCQECMA4GA1UdDwEB/wQEAwIBBjBKBgNVHR8EQzBBMD+gPaA7h
jlodHRwOi8vY3JsMi5hZG9iZS5jb20vQWRvYmUvRmxhc2hBY2Nlc3NJbnRlcm1lZGlhdGVDQS5jcmwwH
QYDVR0OBBYEFBokZw8kPigpsLnidY6FAV2ln9DMMB8GA1UdIwQYMBaAFPMudWFEGUCKkYxOsVZaTs9MQ
DfwMA0GCSqGSIb3DQEBCwUAA4IBAQAVqzJ/3ryYdZBjqMdLJpc5hNaiuDmeQ9rb8cE71N/mSRARd+ci+
AgeC28gEY9Q0zBxUcXdx4aBGiYZY4XaCXZmqIdGD8K11bmQxhVJS8TZijp9WnZEpzxrtm/PXlzbbXSe5
e5HEQVtzZqXOooc0/Qy25jV60r86xe5pYjcsot25Dwlnu8jkLsHWRDboISXl0IDNySx21jgmc/J1KkR/
35qFlmB8JElA7f0h4BNrXn3JzIk4DITKMjkzZr2qycBffRRep+D6HvQ0P6Oh02WUUqZUBj4kl0xzAgRi
+c6ByL4Nt5wvsIw7Z8E6elgcGjjLaB6lHQNM2YI3221S4BWCsjcMYIBfjCCAXoCAQEweTBlMQswCQYDV
QQGEwJVUzEjMCEGA1UEChMaQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQxMTAvBgNVBAMTKEFkb2JlI
EZsYXNoIEFjY2VzcyBDdXN0b21lciBCb290c3RyYXAgQ0ECECSEhdrzcpsO8vGjvGGYPbwwCQYFKw4DA
hoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEyMTAzMTEwMDgwN
VowIwYJKoZIhvcNAQkEMRYEFPG9hVMzuPCTOAUAeLUkhvdU/IA4MA0GCSqGSIb3DQEBAQUABIGAX8M81
Z3BOJuYzZz4hZHgsQxBoW99zNfGMMpnf4Rwk+efc8mOEguiEt5sSk25m/0gkFVIKT0+CyEXpExv4Mys8
IaqPKufn0PmVsHxeo23N0RUoiyft74QM/Y13PNilntYiJ6+0YQ+lP3BZdmIjO4iJY+Ks56+yiJFfxhWM
2A3E9Y=�� �� �� �� ��
Original comment by andrewcr...@gmail.com
on 7 Nov 2012 at 9:28
Updated script, this should now work for url's like
http://www.channel4.com/programmes/channel-4-news/4od
returns most recent or
http://www.channel4.com/programmes/time-team-specials/4od#3412042?1346634890
where http://ais.channel4.com/asset/3412042?1346634890 was used when
http://ais.channel4.com/asset/3412042 should be used, otherwise part of the xml
returned is missing - comment 32.
Comment 33 - ch4_f4v_flv.pl outputs the der file.
Comment 35 - already handles that...
Comment 37, 38 - already handled the drm string large chunk of data is in
AMF0/Base 64/ASN1 format - the ANS1 format is in the .der file.
Original comment by njtaylor...@gmail.com
on 8 Nov 2012 at 12:08
Attachments:
[deleted comment]
This is not a typical certificate - doesn't start with -----BEGIN
CERTIFICATE----- at least. However even if you add -----BEGIN CERTIFICATE-----
and -----END CERTIFICATE-----, it will still not decode.
Original comment by aulisme...@gmail.com
on 8 Nov 2012 at 1:31
[deleted comment]
When I looked at the traffic, there was some traffic with redbeemedia, which
appears in the .der, which is the point I reached. I was going to look at the
message / response, to see if the key was in the response. redbeemedia has
channel 4 as a client, could just be advert related. Flash Access from what I
have seen is meant to send a request and get the key in a response, this is why
I stuck the ASN1 decoding in.
The .der is too large for a single certificate, I split it up had 3 files
This is what I used to look at the .der file - the asn1parse told me it's pkcs7
openssl pkcs7 -inform DER -in ch4_xxx.der -print_certs -text
openssl asn1parse -inform DER -in ch4_xxx.der
Original comment by njtaylor...@gmail.com
on 8 Nov 2012 at 2:51
If you do ... (need openssl asn1parse to find offset/size of large bit stream..)
dd if=ch4_xxx.der of=xx.der bs=1 skip=62 count=2042
openssl asn1parse inform der -in xx.der
to view the ASN1 string contained within
Original comment by njtaylor...@gmail.com
on 8 Nov 2012 at 3:17
Red Bee Media are actually the technological designers of all this new security
system process for 4oD.
Original comment by aulisme...@gmail.com
on 8 Nov 2012 at 4:05
Red Bee Media servers are being called 4 times in the example I use (
http://www.channel4.com/programmes/the-album-chart-show/4od#3420568 ).
This URL called twice:
http://fax.c4.aws.redbeemedia.com//flashaccess/getServerVersion/v3 but gets 404.
This URL also twice: http://fax.c4.aws.redbeemedia.com//flashaccess/license/v1
If you open this up in your browser, you will see "License Server is setup
correctly.". This is apparently an access point where it is supposed to get the
key from.
All these requests are POST requests. What is being sent to the server is
something I cannot understand just yet, probably some other kind of a key, it
has "Adobe Systems Incorporated110/U(Adobe Flash Access Customer
Bootstrap" in it, the rest is encoded somehow. What's more interesting, http
response is empty, so the key value is not there. Or at least I can't see it.
Red Bee Media uses Nevion’s Flashlink solutions for Channel 4's content
transport
http://tinyurl.com/ayff3fz
Original comment by aulisme...@gmail.com
on 8 Nov 2012 at 4:47
the script still doesnt detect slist at least for this one
C:\Users\Andy\Downloads>perl ch4_f4v_flv.pl http://www.channel4.com/programmes/t
ime-team-specials/4od#3412042
URL http://www.channel4.com/programmes/time-team-specials/4od#3412042
Using ch4_3412042 as storage directory
Page url http://www.channel4.com/programmes/time-team-specials/4od#3412042
Used ch4_3412042/3412042.html from cache for http://www.channel4.com/programmes/
time-team-specials/4od#3412042
swf player 4odplayer-11.31.1.swf
Used ch4_3412042/asset.xml from cache for http://ais.channel4.com/asset/3412042
Stream URL http://ll.abrstream.channel4.com/CH4_08_02_24_45569001001003_003_16x9
_1500000_.f4m
Use of uninitialized value $slist in concatenation (.) or string at ch4_f4v_flv.
pl line 601.
Slist
Token jZGfXUrmGGW2uXKUQFIjgBlHc4hA0t9QZqvEDPwjNrmIlM0FPSpWT7wnAfVFcAY0RvmZxRZjuc
aUBnzVX0Wp0cxI46F4pAPj5U5Ul0rDosBz9IA8v8kdgzId8SPzY+j7jZdr5vgvT7RNRte4B37ESpxw4T
TuicmLHxdpXbYvLgVX7xtT8qsbbrVlAO+ReuSv
Use of uninitialized value $slist in concatenation (.) or string at ch4_f4v_flv.
pl line 605.
Unable to open ch4_3412042/
i can by pass it that not a problem
Original comment by andrewcr...@gmail.com
on 8 Nov 2012 at 8:15
substr outside of string at ch4_f4v_flv.pl line 849.
set_iv: initial value must be the blocksize (16 bytes), but was 451013 bytes at
ch4_f4v_flv.pl line 850.
once i bypass it with teh data direct that wha ti get.
also i noticed something strange, when you use ais with assest code direct you
get slist but when you use it wil other strings it doesnt have a slist tag but
a e tag
Original comment by andrewcr...@gmail.com
on 8 Nov 2012 at 8:19
<slist>CH4_08_02_24_45569001001003_003_16x9_1500000_.f4m</slist>
<cdn>ak</cdn>
after adding the ?
<cdn>ll</cdn>
<e>1352362900</e>
Original comment by andrewcr...@gmail.com
on 8 Nov 2012 at 8:34
i output the file to text so you can look at it, weirdly before it crashes it
got one almighty huge data string
Original comment by andrewcr...@gmail.com
on 8 Nov 2012 at 9:44
Attachments:
Original issue reported on code.google.com by
njtaylor...@gmail.com
on 13 Apr 2012 at 9:19