Veritas-bu

[Veritas-bu] NB 4.5 and ClearCase VOB backups

2003-09-03 16:05:26
Subject: [Veritas-bu] NB 4.5 and ClearCase VOB backups
From: Joost Mulders <mail AT j-mulders.demon DOT nl> (Joost Mulders)
Date: Wed, 3 Sep 2003 22:05:26 +0200 (CEST)
--Troubling_of_Goldfish_834_000
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: VVZB6xa6Pxaw+8D+eS7XeQ==


Hi John, 

I am afraid it's even worse in the NetBackup world ;-) 

First of all: No, the filesystem that is being backed up is not 
available in the bp[start|end]_notify scripts.

Secondly, if yo define a policy with multiple filesystems and enable 
multiplexing (parallelism in lgto speak) then, for each datastream the 
bp[start|end]_notify scripts will be executed multiple times, once for 
each filesystem (actually; once for each datastream). 

To backup multiple filesystems on one client in parallel WITH session 
pre- and post commands is really difficult. I attached two template 
scripts which do that, but it still is a pain. The scripts do have some 
comments though that explain how bpstart and -end work (and why it is a 
pain ;-)

What I normally do for complex session stop- and start procedures is to 
forget about bpstart- and -end and initiate the backup on the client (fe 
by cron), including pre- and post processing. 

For this, you'll need these steps;

- Create a policy with the clients in them
- Create a schedule of the type "User Backup" in that policy with the 
  window always open. This allows the client(s) to initate a backup.

Your script should do
 - lock, snapshot, unlock all filesystems
 - run bpbackup with the "-w 0" option. This will cause the command
   for backup completion instead of initiating and returning to the 
   command prompt
 - do the post processing 

With this, you'll lose Netbackup's scheduling features but it's a lot 
simpler then bp[start|end]_notify.

Cheers, 

Joost



>Hi all,
>
>I've been researching what it will take to backup our ClearCase VOB
>servers, all of which are Solaris boxes.  The issue I have is that
>I've got multiple filesystems on each server, each with one or more
>VOBs.   We're running NB 4.5FP4 (maybe FP5) on Solaris 9, on a V880.
>Still in test mode before we deploy it.
>
>Currently we're using Legato Networker for the backup and it's working
>just fine.  I've got a script which takes the place of the 'save'
>command (think bpbkar, maybe?) to do the pre and post processing
>needed to make proper snapshots of the VOBs before doing backups.
>
>>From the looks of it, I need to use the bpstart_notify and
>bpend_notify scripts to do my pre and post processing, which shouldn't
>be a problem.  The only issue I have is that I need to know which
>filesystem is going to be backed up on each invocation, and I don't
>see anything about this in the various NetBackup guides which tells me
>how this works.  
>
>Do I need to create a policy for each and every filesystem with VOBs,
>on each and every client, and then setup a copy of the
>bp[start,end]_notify scripts specifically setup for each defined
>policy?  Is that the only way I can tell which filesystem I'm backing
>up?
>
>For example, I have a server, swvob1, with a bunch of VxFS (or UFS)
>filesystems called:  /sw_VOBS1, /sw_VOBS2, ... , /sw_VOBSN.  My plan
>is to:
>
>   - lock the vob(s) on a filesystem
>   - create a VxFS snapshot of the filesystem
>   - unlock the vob(s)
>   - mount the snapshot
>   - backup the snapshot
>   - unmount the snapshot
>   - destroy the snapshot volume
>
>But I don't know how to get the filesystem name from the scripts.  If
>I had that, I'd simply tell the server to backup
>
>  /sw_VOBS1_backup
>  /sw_VOBS2_backup
>  .
>  .
>  .
>  /sw_VOBSN_backup
>  
>and the script would know where to get the snapshot from.
>
>Thanks,
>John
>   John Stoffel - Senior Unix Systems Administrator - Lucent 
Technologies
>        stoffel AT lucent DOT com - http://www.lucent.com - 978-952-7548
>
>_______________________________________________
>Veritas-bu maillist  -  Veritas-bu AT mailman.eng.auburn DOT edu
>http://mailman.eng.auburn.edu/mailman/listinfo/veritas-bu

-- 
Long may you run.


--Troubling_of_Goldfish_834_000
Content-Type: APPLICATION/x-sun-shell-script; name="bpstart_notify.template"
Content-Transfer-Encoding: BASE64
Content-Description: bpstart_notify.template
Content-MD5: EmM3tRut3Fk7od1NaJpvvg==

IyEvYmluL2tzaAoKIyMKIyBXaGF0PwojIC0tLS0tCiMgYnBzdGFydF9ub3Rp
Znkgdi4xLjEuCiMgIEpvb3N0IE11bGRlcnMsIFN1biBNaXNjcm9zeXN0ZW1z
IE5ldGhlcmxhbmRzLCBqb29zdC5tdWxkZXJzQHN1bi5jb20KIyAgTm8gd2Fy
cmFudGllcyBvZiBhbnkga2luZC4gUmVhbGx5IQojIwoKIyMKIyBXaHk/CiMg
LS0tLQojIFZFUklUQVMgTmV0QmFja3VwIHByb3ZpZGVzIGEgc29ydCBvZiAn
aG9va3MnIGZvciBleGVjdXRpbmcgcHJlLSBhbmQgcG9zdGJhY2t1cAojIGNv
bW1hbmRzLiBUaGVzZSBob29rcyBhcmUgc2NyaXB0cy9jb21tYW5kcyB0aGF0
IGV4aXN0IGluIGEgcHJlZGVmaW5lZAojIGxvY2F0aW9uLiBVbmZvcnR1bmF0
ZWx5LCB3aGVuIGEgYmFja3VwIGlzIGV4ZWN1dGVkIHRoYXQgcHJvZHVjZXMg
bXVsdGlwbGUKIyBkYXRhc3RyZWFtcywgdGhlIHByZS0gYW5kIHBvc3QgY29t
bWFuZHMgYXJlIGV4ZWN1dGVkIG9uY2UgZm9yIGV2ZXJ5IHN0cmVhbSEKIwoj
IFt0ZWNoXSBJdCBpcyBhY3R1YWxseSBicGJrYXIgdGhhdCBpbnZva2VzIHRo
ZSBwcmUtIGFuZCBwb3N0IGNvbW1hbmRzIGFuZAojICAgICAgICBldmVyeSBk
YXRhc3RyZWFtIGlzIGdlbmVyYXRlZCBieSBpdCdzIG93biBicGJrYXIuCiMK
IyBTYXksIHdlIGhhdmUgYSBwb2xpY3kgdGhhdCBiYWNrJ3MgdXAgYW4gT3Jh
Y2xlIGRhdGFiYXNlLiBBbmQgc2F5IHRoYXQgdGhpcwojIGRhdGFiYXNlIGlz
IHNwcmVhZCBvdmVyIG11bHRpcGxlIGZpbGVzeXN0ZW1zLiBJZiB3ZSBtYWtl
IGEgcHJlLWJhY2t1cAojIHByb2NlZHVyZSB0byBzaHV0ZG93biB0aGlzIGRh
dGFiYXNlIGJlZm9yZSBiYWNrdXAsIHRoaXMgcHJlLWJhY2t1cCBjb21tYW5k
CiMgd2lsbCBiZSBleGVjdXRlZCBvbmNlIGZvciBldmVyeSBzdHJlYW0uIFRo
ZSBhdHRlbXB0IHRvIHNodXRkb3duIGEgZGF0YWJhc2UKIyBtdWx0aXBsZSB0
aW1lcyBpcyBub3QgYSBwcm9ibGVtLCBhbGx0aG91Z2ggbm90IHZlcnkgJ2Rh
dGFjZW50ZXIgcm9idXN0Jy4KIyBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBm
aXJzdCBzdHJlYW0gdGhhdCBmaW5pc2hlcyB3aWxsIHN0YXJ0IHVwIHRoZSBk
YXRhYmFzZQojIGFnYWluLCBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN0cmVhbXMg
Y29udGludWUgdG8gYmFja3VwIGFuIG9wZW4gZGF0YWJhc2UsCiMgcmVuZGVy
aW5nIHRoZSBiYWNrdXAgdXNlbGVzcy4KIwojIEZ1cnRoZXJtb3JlLCB0aGVy
ZSBhcmUgYWxzbyBzb21lIGludGVyZXN0aW5nIGJvcmRlcmNhc2VzOgojCiMg
LSBvbmUgc3RyZWFtIHN0YXJ0cywgZXhlY3MgcHJlLWJhY2t1cCwgYmFja3Vw
LCBleGVjcyBwb3N0YmFja3VwLgojIC0gb3RoZXIgc3RyZWFtcyBhcmUgcXVl
dWVkIGJlY2F1c2Ugb2YgZHJpdmUgaW4tYXZhaWxhYmlsdHkuCiMgLSBuZXh0
IHN0cmVhbSBzdGFydHMsIGV4ZWNzIHByZS1iYWNrdXAgYWdhaW4sIGJhY2t1
cCwgZXhlY3MgcG9zdGJhY2t1cCBhZ2Fpbi4KIyAtPiBEYXRhYmFzZSBpcyBz
aHV0ZG93bi9zdGFydGVkIG11bHRpcGxlIHRpbWVzLCBiYWNrdXAgaXMgb2Yg
ZGlmZmVyZW50CiMgICAgdGltZXN0YW1wcywgYW5kIHRoZXJlZm9yZSwgdXNl
bGVzcyBpZiB0aGUgZGIgaXMgbm90IGFyY2hpdmluZyByZWRvLgojCiMgT3Is
IHdoYXQgdG8gdGhpbmsgb2YgdGhpcyBvbmU6CiMgLSBmaXJzdCBzdHJlYW0g
c3RhcnRzLCBleGVjcyBwcmUtYmFja3VwLCB3aGljaCB0YWtlcyAxMCBtaW51
dGVzIHRvIGNvbXBsZXRlLgojIC0gc3Vic2VxdWVudCBzdHJlYW1zIHN0YXJ0
IHJpZ2h0IGFmdGVyIHRoZSBmaXJzdCBvbmUgYW5kIGJhY2t1cCBmaWxlcyBv
ZgojICAgYW4gb3BlbiBkYXRhYmFzZS4KIwojIFRoZSBwdXJwb3NlIG9mIHRo
aXMgc2NyaXB0IGlzIHRvIGhhdmUgYSBwcmUtIGFuZCBwb3N0IHByb2NlZHVy
ZSB0aGF0IGFyZQojIGV4ZWN1dGVkIG9uY2UuIFRoZSBwcmUtYmFja3VwIHBy
b2NlZHVyZSBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2YgdGhlIGJhY2t1cAoj
ICh3aXRoIG5vIG90aGVyIHN0cmVhbXMgcnVubmluZykgYW5kIHRoZSBwb3N0
LXByb2NlZHVyZSBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0CiMgZGF0YXN0cmVh
bS4KIyMKCgojIwojIEhvdz8KIyAtLS0tCiMgVGhpcyBzY3JpcHQgc2hvdWxk
IGJlIGNvcGllZCB0byAvdXNyL29wZW52L25ldGJhY2t1cC9iaW4uIEl0J3Mg
bmFtZSBjYW4gYmU6CiMgIGJwc3RhcnRfbm90aWZ5IAojICBicHN0YXJ0X25v
dGlmeS5jbGFzc25hbWUKIyAgYnBzdGFydF9ub3RpZnkuY2xhc3NuYW1lLnNj
aGVkdWxlbmFtZQojCiMgTmV0YmFja3VwIHdpbGwgZXhlY3V0ZSBvbmx5IHRo
ZSBtb3N0IHNwZWNpZmljIHNjcmlwdCBpbiB0aGUgZXZlbnQgdGhhdCBtb3Jl
CiMgdGhhbiBvbmUgc2NyaXB0IGlzIGF2YWlsYWJsZS4gCiMgCiMgVGhlIGJw
c3RhcnQtIGFuZCBicGVuZCBzY3JpcHRzIHNob3VsZCBub3QgcHJvZHVjZSBh
bnkgb3V0cHV0IG9uIHN0ZG91dCBvcgojIHN0ZGVyciB3aGVuIHJ1bm5pbmcu
IAojCiMgUGFyYW1ldGVycyBwYXNzZWQgdG8gdGhpcyBzY3JpcHQ6CiMKIyAk
MSAtLSBOYW1lIG9mIHRoZSBjbGllbnQgZnJvbSB0aGUgTmV0QmFja3VwIGNh
dGFsb2cuCiMgJDIgLS0gQ2xhc3MgbmFtZSBmcm9tIHRoZSBOZXRCYWNrdXAg
Y2F0YWxvZy4KIyAkMyAtLSBTY2hlZHVsZSBuYW1lIGZyb20gdGhlIE5ldEJh
Y2t1cCBjYXRhbG9nLgojICQ0IC0tIE9uZSBvZiB0aGUgZm9sbG93aW5nOiBG
VUxMIElOQ1IgQ0lOQyBVQkFLIFVBUkMKIyAKIyBFbnZpcm9ubWVudCB2YXJp
YWJsZXMgY3JlYXRlZCBieSBicGJrYXIKIyAgQkFDS1VQSUQKIyAgU1RSRUFN
X05VTUJFUiAtLSAwOiBNdWx0aXBsZSBkYXRhc3RyZWFtcyBub3QgZW5hYmxl
ZAojICBTVFJFQU1fTlVNQkVSIC0tIG46IFRoaXMgaXMgdGhlIG4ndGggc3Ry
ZWFtIGZvciB0aGlzIGNsaWVudC9zY2hlZHVsZS4KIyAgU1RSRUFNX0NPVU5U
ICAtLSBUaGUgdG90YWwgbnVtYmVyIG9mIHN0cmVhbXMgdG8gYmUgZ2VuZXJh
dGVkIGZvciB0aGlzIGNsaWVudAojICBTVFJFQU1fUElEICAgIC0tIFRoZSBQ
SUQgb2YgdGhlIGFjY29tcHlpbmcgYnBia2FyIHByb2Nlc3MKIwojIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpjbGllbnQ9JDEKY2xhc3M9
JDIKc2NoZWQ9JDMKdHlwZT0kNApsb2dkaXI9L3Vzci9vcGVudi9uZXRiYWNr
dXAvbG9ncy9ub3RpZnkKbG9nZj0kbG9nZGlyL25vdGlmeS4kY2xhc3MKY291
bnQ9L3RtcC9ub3RpZnkuJGNsYXNzCmludGVydmFsPTQwCmxvY2s9L3RtcC9u
b3RpZnkuJGNsYXNzLmxvY2sKCmxvZyAoKQp7CiBlY2hvICJzdGFydFskU1RS
RUFNX05VTUJFUl0gJCgvdXNyL2Jpbi9kYXRlICcrJW0tJWQgJUg6JU06JVMn
KSAkQCIKfQoKIyMKIyBNYWluICgpCiMjCgogIyMKICMgQ3JlYXRlIGEgbG9n
ZmlsZSBmb3IgdGhpcyBiYWNrdXAKICMjCiBpZiBbWyAhIC1kICRsb2dkaXIg
XV07IHRoZW4KICAvdXNyL2Jpbi9ta2RpciAtcCAkbG9nZGlyCiBmaQogCiAj
IwogIyBGcm9tIG5vdyBvbiwgd2UgdGFsayB0byB0aGUgbG9nZmlsZS4KICMj
CiBleGVjID4+ICRsb2dmIDI+JjEKCiBsb2cgIlN0YXJ0IGludm9jYXRpb246
IFNOPSRTVFJFQU1fTlVNQkVSIFNDPSRTVFJFQU1fQ09VTlQgU1RPPSRCUFNU
QVJUX1RJTUVPVVQiCgogIyMKICMgU3RhcnQgbG9naWM6IAogIyMKIGlmICgo
IFNUUkVBTV9DT1VOVCA9PSAwICkpOyB0aGVuCiAgIyMKICAjIE1EUyBkaXNh
YmxlZDogd2UgbXVzdCBleGVjdXRlIHN0YXJ0IHByb2NlZHVyZSAoYW5kIHRo
dXMgbm90CiAgIyBleGl0IGhlcmUpCiAgIyMKICBsb2cgIk1EUyBkaXNhYmxl
ZDogZXhlY3V0aW5nIHN0YXJ0IHByb2NlZHVyZS4iCiBlbHNlCiAgaWYgKCgg
U1RSRUFNX05VTUJFUiA+IDEgKSk7IHRoZW4KICAgIyMKICAgIyBXZSBtdXN0
IGFjdCBkZXBlbmRpbmcgb24gdGhlIHByb2dyZXNzIG9mIHRoZSBmaXJzdCBz
dHJlYW0uIEdpdmUgdGhpcyBmaXJzdAogICAjIHN0cmVhbSBhIGxpdHRsZSB0
aW1lIHRvIGRvIHdoYXQgaXQgaGFzIHRvIGRvIDopIAogICAjIwogICAvdXNy
L2Jpbi9zbGVlcCAkKCggNSArICRTVFJFQU1fTlVNQkVSICkpIAoKICAgIyMK
ICAgIyBXZSBtdXN0IG1ha2Ugc3VyZSBoZXJlIHRoYXQgd2UgZG8gbm90IHN0
YXJ0IGEgc3RyZWFtIGlmIHRoZSBmaXJzdCBzdHJlYW0ncwogICAjIHN0YXJ0
IHByb2NlZHVyZSBpcyBub3QgZmluaXNoZWQgeWV0LgogICAjIwogICB3aGls
ZSBbWyAtZiAkbG9jayBdXQogICBkbwogICAgbG9nICJXYWl0aW5nIGZvciBj
b21wbGV0aW9uIG9mIFNUQVJUIHByb2NlZHVyZS4iCiAgICAvdXNyL2Jpbi9z
bGVlcCAkKCggJGludGVydmFsICsgJFNUUkVBTV9OVU1CRVIgKSkKICAgZG9u
ZQogICBsb2cgIlN0YXJ0IHByb2NlZHVyZSBpbiBzdHJlYW1bMV0gY29tcGxl
dGVkLiBDb250aW51ZS4iCiAgIGV4aXQgMAogIGVsc2UKICAgbG9nICJTVFJF
QU1fTlVNQkVSPSRTVFJFQU1fTlVNQkVSOiBFeGVjdXRpbmcgU1RBUlQgcHJv
Y2VkdXJlLiIKICAgIyMKICAgIyBXcml0ZSB0aGUgc3RyZWFtIGNvdW50IHRv
IGEgdG1wZmlsZSBzbyB0aGF0IGJwZW5kIGNhbiBzdWJzdHJhY3QgY29tcGxl
dGVkCiAgICMgc3RyZWFtcy4gCiAgICMjCiAgIGVjaG8gIiRTVFJFQU1fQ09V
TlQiID4gJGNvdW50CgogICAjIwogICAjIENyZWF0ZSBhIGxvY2sgZmlsZSwg
dGhhdCB3aWxsIGJlIHJlbW92ZWQgd2hlbiB0aGUgc3RhcnQgcHJvY2VkdXJl
IGlzIAogICAjIGZpbmlzaGVkLiBTdWJzZXF1ZW50IGludm9jYXRpb25zIG9m
IHRoaXMgc2NyaXB0IGZvciBhZGRpdGlvbmFsIHN0cmVhbXMKICAgIyB3aWxs
IHdhaXQgZm9yIHRoaXMgbG9jayBmaWxlIHRvIGJlIHJlbW92ZWQuIFRoaXMg
d2F5IHdlIHByZXZlbnQgZXhlY3V0aW9uCiAgICMgb2Ygb3RoZXIgc3RyZWFt
cyBiZWZvcmUgdGhlIFNUQVJUIHByb2NlZHVyZSBpcyBmaW5pc2hlZC4gCiAg
ICMjCiAgIGVjaG8gIiRTVFJFQU1fQ09VTlQiID4gJGxvY2sKICBmaQogZmkK
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTcGVjaWZ5
IHN0YXJ0IGNvbW1hbmRzIGJlbG93LiBFeGl0IDAgaWYgdGhlIGJhY2t1cCBt
dXN0IGNvbnRpbnVlLgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIwpsb2cgIlN0YXJ0aW5nIFNUQVJUIHByb2NlZHVyZTpcbiIKICMjCiAj
IFNwZWNpZnkgdGhlIHByZS1iYWNrdXAgY29tbWFuZHMgaGVyZS4KICMjCgoK
bG9nICJGaW5pc2hlZCBTVEFSVCBwcm9jZWR1cmUuIgovdXNyL2Jpbi9ybSAt
ZiAkbG9jawpleGl0IDAK

--Troubling_of_Goldfish_834_000
Content-Type: APPLICATION/x-sun-shell-script; name="bpend_notify.template"
Content-Transfer-Encoding: BASE64
Content-Description: bpend_notify.template
Content-MD5: d9UK3LBT4Lwqq9PV92osNQ==

IyEvYmluL2tzaAoKIyMKIyBXaGF0PwojIC0tLS0tCiMgYnBlbmRfbm90aWZ5
IHYuMS4xLiAKIyAgSm9vc3QgTXVsZGVycywgU3VuIE1pY3Jvc3lzdGVtcyBO
ZXRoZXJsYW5kcywgam9vc3QubXVsZGVyc0BzdW4uY29tCiMgIE5vIHdhcnJh
bnRpZXMgb2YgYW55IGtpbmQuIFJlYWxseSEKIyMKCiMjCiMgV2h5PwojIC0t
LS0KIyBWRVJJVEFTIE5ldEJhY2t1cCBwcm92aWRlcyBhIHNvcnQgb2YgJ2hv
b2tzJyBmb3IgZXhlY3V0aW5nIHByZS0gYW5kIHBvc3RiYWNrdXAKIyBjb21t
YW5kcy4gVGhlc2UgaG9va3MgYXJlIHNjcmlwdHMvY29tbWFuZHMgdGhhdCBl
eGlzdCBpbiBhIHByZWRlZmluZWQgCiMgbG9jYXRpb24uIFVuZm9ydHVuYXRl
bHksIHdoZW4gYSBiYWNrdXAgaXMgZXhlY3V0ZWQgdGhhdCBwcm9kdWNlcyBt
dWx0aXBsZQojIGRhdGFzdHJlYW1zLCB0aGUgcHJlLSBhbmQgcG9zdCBjb21t
YW5kcyBhcmUgZXhlY3V0ZWQgb25jZSBmb3IgZXZlcnkgc3RyZWFtIQojCiMg
W3RlY2hdIEl0IGlzIGFjdHVhbGx5IGJwYmthciB0aGF0IGludm9rZXMgdGhl
IHByZS0gYW5kIHBvc3QgY29tbWFuZHMgYW5kCiMgICAgICAgIGV2ZXJ5IGRh
dGFzdHJlYW0gaXMgZ2VuZXJhdGVkIGJ5IGl0J3Mgb3duIGJwYmthci4KIwoj
IFNheSwgd2UgaGF2ZSBhIHBvbGljeSB0aGF0IGJhY2sncyB1cCBhbiBPcmFj
bGUgZGF0YWJhc2UuIEFuZCBzYXkgdGhhdCB0aGlzIAojIGRhdGFiYXNlIGlz
IHNwcmVhZCBvdmVyIG11bHRpcGxlIGZpbGVzeXN0ZW1zLiBJZiB3ZSBtYWtl
IGEgcHJlLWJhY2t1cCAKIyBwcm9jZWR1cmUgdG8gc2h1dGRvd24gdGhpcyBk
YXRhYmFzZSBiZWZvcmUgYmFja3VwLCB0aGlzIHByZS1iYWNrdXAgY29tbWFu
ZCAKIyB3aWxsIGJlIGV4ZWN1dGVkIG9uY2UgZm9yIGV2ZXJ5IHN0cmVhbS4g
VGhlIGF0dGVtcHQgdG8gc2h1dGRvd24gYSBkYXRhYmFzZSAKIyBtdWx0aXBs
ZSB0aW1lcyBpcyBub3QgYSBwcm9ibGVtLCBhbGx0aG91Z2ggbm90IHZlcnkg
J2RhdGFjZW50ZXIgcm9idXN0Jy4gCiMgVGhlIHByb2JsZW0gaXMgdGhhdCB0
aGUgZmlyc3Qgc3RyZWFtIHRoYXQgZmluaXNoZXMgd2lsbCBzdGFydCB1cCB0
aGUgZGF0YWJhc2UKIyBhZ2FpbiwgYW5kIHRoZSByZXN0IG9mIHRoZSBzdHJl
YW1zIGNvbnRpbnVlIHRvIGJhY2t1cCBhbiBvcGVuIGRhdGFiYXNlLCAKIyBy
ZW5kZXJpbmcgdGhlIGJhY2t1cCB1c2VsZXNzLiAKIwojIEZ1cnRoZXJtb3Jl
LCB0aGVyZSBhcmUgYWxzbyBzb21lIGludGVyZXN0aW5nIGJvcmRlcmNhc2Vz
OiAKIwojIC0gb25lIHN0cmVhbSBzdGFydHMsIGV4ZWNzIHByZS1iYWNrdXAs
IGJhY2t1cCwgZXhlY3MgcG9zdGJhY2t1cC4gCiMgLSBvdGhlciBzdHJlYW1z
IGFyZSBxdWV1ZWQgYmVjYXVzZSBvZiBkcml2ZSBpbi1hdmFpbGFiaWx0eS4g
CiMgLSBuZXh0IHN0cmVhbSBzdGFydHMsIGV4ZWNzIHByZS1iYWNrdXAgYWdh
aW4sIGJhY2t1cCwgZXhlY3MgcG9zdGJhY2t1cCBhZ2Fpbi4KIyAtPiBEYXRh
YmFzZSBpcyBzaHV0ZG93bi9zdGFydGVkIG11bHRpcGxlIHRpbWVzLCBiYWNr
dXAgaXMgb2YgZGlmZmVyZW50IAojICAgIHRpbWVzdGFtcHMsIGFuZCB0aGVy
ZWZvcmUsIHVzZWxlc3MgaWYgdGhlIGRiIGlzIG5vdCBhcmNoaXZpbmcgcmVk
by4gCiMKIyBPciwgd2hhdCB0byB0aGluayBvZiB0aGlzIG9uZToKIyAtIGZp
cnN0IHN0cmVhbSBzdGFydHMsIGV4ZWNzIHByZS1iYWNrdXAsIHdoaWNoIHRh
a2VzIDEwIG1pbnV0ZXMgdG8gY29tcGxldGUuCiMgLSBzdWJzZXF1ZW50IHN0
cmVhbXMgc3RhcnQgcmlnaHQgYWZ0ZXIgdGhlIGZpcnN0IG9uZSBhbmQgYmFj
a3VwIGZpbGVzIG9mCiMgICBhbiBvcGVuIGRhdGFiYXNlLiAKIwojIFRoZSBw
dXJwb3NlIG9mIHRoaXMgc2NyaXB0IGlzIHRvIGhhdmUgYSBwcmUtIGFuZCBw
b3N0IHByb2NlZHVyZSB0aGF0IGFyZQojIGV4ZWN1dGVkIG9uY2UuIFRoZSBw
cmUtYmFja3VwIHByb2NlZHVyZSBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2Yg
dGhlIGJhY2t1cAojICh3aXRoIG5vIG90aGVyIHN0cmVhbXMgcnVubmluZykg
YW5kIHRoZSBwb3N0LXByb2NlZHVyZSBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0
CiMgZGF0YXN0cmVhbS4KIyMKCgojIwojIEhvdz8KIyAtLS0tCiMgVGhpcyBz
Y3JpcHQgc2hvdWxkIGJlIGNvcGllZCB0byAvdXNyL29wZW52L25ldGJhY2t1
cC9iaW4uIEl0J3MgbmFtZSBjYW4gYmU6CiMgCiMgIGJwZW5kX25vdGlmeSAK
IyAgYnBlbmRfbm90aWZ5LmNsYXNzbmFtZQojICBicGVuZF9ub3RpZnkuY2xh
c3NuYW1lLnNjaGVkdWxlbmFtZQojCiMgTmV0YmFja3VwIHdpbGwgZXhlY3V0
ZSBvbmx5IHRoZSBtb3N0IHNwZWNpZmljIHNjcmlwdCBpbiB0aGUgZXZlbnQg
dGhhdCBtb3JlCiMgdGhhbiBvbmUgc2NyaXB0IGV4aXN0cy4KIyAKIyBUaGUg
YnBzdGFydC0gYW5kIGJwZW5kIHNjcmlwdHMgc2hvdWxkIG5vdCBwcm9kdWNl
IGFueSBvdXRwdXQgb24gc3Rkb3V0IG9yCiMgc3RkZXJyIHdoZW4gcnVubmlu
Zy4gCiMKIyBQYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGlzIHNjcmlwdDoKIwoj
ICQxIC0tIE5hbWUgb2YgdGhlIGNsaWVudCBmcm9tIHRoZSBOZXRCYWNrdXAg
Y2F0YWxvZy4KIyAkMiAtLSBDbGFzcyBuYW1lIGZyb20gdGhlIE5ldEJhY2t1
cCBjYXRhbG9nLgojICQzIC0tIFNjaGVkdWxlIG5hbWUgZnJvbSB0aGUgTmV0
QmFja3VwIGNhdGFsb2cuCiMgJDQgLS0gT25lIG9mIHRoZSBmb2xsb3dpbmc6
IEZVTEwgSU5DUiBDSU5DIFVCQUsgVUFSQwojIAojIEVudmlyb25tZW50IHZh
cmlhYmxlcyBjcmVhdGVkIGJ5IGJwYmthcgojICBCQUNLVVBJRAojICBTVFJF
QU1fTlVNQkVSIC0tIDA6IE11bHRpcGxlIGRhdGFzdHJlYW1zIG5vdCBlbmFi
bGVkCiMgIFNUUkVBTV9OVU1CRVIgLS0gbjogVGhpcyBpcyB0aGUgbid0aCBz
dHJlYW0gZm9yIHRoaXMgY2xpZW50L3NjaGVkdWxlLgojICBTVFJFQU1fQ09V
TlQgIC0tIDA6IE11bHRpcGxlIGRhdGFzdHJlYW1zIG5vdCBlbmFibGVkCiMg
IFNUUkVBTV9DT1VOVCAgLS0gbjogVGhlIHRvdGFsIG51bWJlciBvZiBzdHJl
YW1zIHRvIGJlIGdlbmVyYXRlZC4KIyAgU1RSRUFNX1BJRCAgICAtLSBUaGUg
UElEIG9mIHRoZSBhY2NvbXB5aW5nIGJwYmthciBwcm9jZXNzCiMKIwojIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpjbGllbnQ9JDEKY2xh
c3M9JDIKc2NoZWQ9JDMKdHlwZT0kNApsb2dkaXI9L3Vzci9vcGVudi9uZXRi
YWNrdXAvbG9ncy9ub3RpZnkKbG9nZj0kbG9nZGlyL25vdGlmeS4kY2xhc3MK
Y291bnQ9L3RtcC9ub3RpZnkuJGNsYXNzCgpzZXQKCmxvZyAoKQp7CiBlY2hv
ICJicGVuZFskU1RSRUFNX05VTUJFUl0gJCgvdXNyL2Jpbi9kYXRlICcrJW0t
JWQgJUg6JU06JVMnKSAkQCIKfQoKIAojIwojIE1haW4gKCkKIyMKCiAjIwog
IyBDcmVhdGUgYSBsb2dmaWxlIGZvciB0aGlzIGJhY2t1cAogIyMKIGlmIFtb
ICEgLWQgJGxvZ2RpciBdXTsgdGhlbgogIC91c3IvYmluL21rZGlyIC1wICRs
b2dkaXIKIGZpCiAKICMjCiAjIEZyb20gbm93IG9uLCB3ZSB0YWxrIHRvIHRo
ZSBsb2dmaWxlLgogIyMKIGV4ZWMgPj4gJGxvZ2YgMj4mMQoKIGxvZyAiQnBl
bmQgaW52b2NhdGlvbjogU049JFNUUkVBTV9OVU1CRVIgU0M9JFNUUkVBTV9D
T1VOVCBFVE89JEJQRU5EX1RJTUVPVVQiCgogIyMKICMgU3RhcnQgbG9naWM6
IAogIyMKIGlmICgoIFNUUkVBTV9DT1VOVCA9PSAwICkpOyB0aGVuCiAgIyMK
ICAjIE1EUyBkaXNhYmxlZDogd2UgbXVzdCBleGVjdXRlIEVORCAgcHJvY2Vk
dXJlIChhbmQgdGh1cyBub3QKICAjIGV4aXQgaGVyZSkKICAjIwogIGxvZyAi
TURTIGRpc2FibGVkOiBleGVjdXRpbmcgRU5EIHByb2NlZHVyZS4iCiBlbHNl
CiAgaWYgW1sgISAtZiAkY291bnQgXV07IHRoZW4KICAgbG9nICJFcnJvcjog
c3RyZWFtIGNvdW50IGZpbGUgJGNvdW50IG5vdCBmb3VuZC4iCiAgIGV4aXQg
MQogIGVsc2UKICAgcmVhZCBzY291bnQgPCAkY291bnQKICAgIyMKICAgIyBN
YWtlIHRoZSByZWFkOyB1cGRhdGU7IHdyaXRlIGN5Y2xlIHNvcnQgb2YgYXRv
bWljIDopCiAgICMjCiAgIHNjb3VudD0kKCggc2NvdW50IC0gMSApKTsgZWNo
byAkc2NvdW50ID4gJGNvdW50CiAgIGlmICgoIHNjb3VudCA+IDAgKSk7IHRo
ZW4KICAgICMjCiAgICAjIFdlIG11c3QgdXBkYXRlIHRoZSBjb3VudCBhbmQg
ZG8gbm90aGluZy4KICAgICMjCiAgICBsb2cgIlJlZCBhIGNvdW50IG9mICRz
Y291bnQgc3RyZWFtcyB0byBnbzogZG9pbmcgbm90aGluZy4iCiAgICBleGl0
IDAgCiAgIGVsaWYgKCggc2NvdW50IDwgMCApKTsgdGhlbgogICAgbG9nICJz
Y291bnQgPSAkc2NvdW50ISBleGl0IHdpdGggZXJyb3IuIgogICAgZXhpdCAx
CiAgIGVsc2UKICAgIGxvZyAiU3RyZWFtY291bnQgPSAwOiBFeGVjdXRpbmcg
RU5EIHByb2NlZHVyZS4iIAogICAgL3Vzci9iaW4vcm0gJGNvdW50CiAgIGZp
CiAgZmkKIGZpCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
CiMgU3BlY2lmeSBlbmQgY29tbWFuZHMgYmVsb3cuIEV4aXQgMCBpZiB0aGUg
YmFja3VwIG11c3QgcmVwb3J0IHN1Y2Nlc3MuCiMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCmxvZyAiU3RhcnRpbmcgRU5EIHByb2NlZHVy
ZTpcbiIKICMjCiAjIFNwZWNpZnkgdGhlIHBvc3QtYmFja3VwIGNvbW1hbmRz
IGhlcmUuCiAjIwoKbG9nICJGaW5pc2hlZCBFTkQgcHJvY2VkdXJlLiIKbG9n
ICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyIKZXhpdCAwCg==

--Troubling_of_Goldfish_834_000--