After two weeks mucking with this ... my conclusion is that it's probably not a dll issue.  The same dll on two computers or even two user profiles on the same computer works fine.  Somehow, at some point say in the last 6 months JBPRO got corrupted on my admin profile on Windows.  I have no idea why.  Trying to uninstall and reinstall it does nothing.  I can create (after jumping through Many Microsoft hoops) a new profile on the same computer, and JBPRO will run from that. 

It's a marginally acceptable short term solution.  However, working with more than one profile is a Windows p.i.t.a.  Settings that you've spent years customizing (show extensions for file types in Explorer just for example) aren't there in the new profile. 

It's partly my own fault for losing my Windows local password.  And they (Microsoft) have a p.i.t.a. process for recovering it ... the only way you can communicate with them is by filling out a form with info proving who you are ... and there is no provision on the form for some of the info they require.  They won't accept an email.  And they limit the number of forms you can send.  Hopeless.  Reinstalling Windows from scratch, maybe even on a new computer and being more careful with passwords is going to be the longer term solution. 

Thanks once again for your help @Steven.

Well the good news is that Jbpro failing IS PROBABLY A PROFILE issue.  The bad news it that it took me parts of 4 days and a lot of Windows craziness to confirm this.  I have always resisted having to sign in to my own darned computer,  so I used netplwiz magic to turn that requirement off.  Hit the power button, wait a few seconds and I'm in.  To create a new profile, I first needed to be able to sign in.  If you've forgotten your password that's not possible.  I went through several rounds of trying to prove my identify to MS and they are totally useless.  Tried many other approaches.  Without digressing too far, you need a new admin user.  In your C:\users directory a  profile will be created with the first four letters of that user's email (actually the first four of their id).  If you go through the appropriate set up password hoops (which are totally crazy and inconsistent) you eventually get a c:\users\newid record indicating a id you can sign into.  Do that (sign in) and run JBPRO from that and it works.  What's wrong with your "standard" profile is beyond me.  I could run file comparisons between the old profile where jbpro doesn't work and the new one.  But life is too short.  I can run it by signing on to the new profile or going to another computer where it works.   That's all I need and all I have time for. 

If somewhere there is someone actively supporting JBPRO (? Simpleviewer folks out in California?) they need to have a test setup with computers and software that people actually use ... which still includes Windows 10) and figure out what's going on.  It there is a developer actually working on this actively I'd be happy to share my experience but for now I have to move on.

Thanks once again Steven.  I will try your suggested solution and report back.  FWIW, I was just about at the point of reinstalling Windows yesterday when I realized that the only option would have me reinstalling ALL my programs.  That's just a step too far for me right now.  I am skeptical about how completely the System File Check and DISM options in Windows work.  I took the kernelbase.dll file from my Wife's computer (the one where JBOX Pro works) and put it on a USB stick and ran a binary compare with what's in my windows/system32 folder.  The files match EXACTLY, BYTE FOR BYTE.  So, it's not a discrepancy in kernelbase.dll that's causing this. 

I've seen the user profile suggestion somewhere else in the last couple of days.  I think I'll try that first and swap out AIR versions if that doesn't work.  The fact that JBPRo works on the wife's computer and not on mine leads me to that approach.

Before I went through the pain of reinstalling Windows (I tried various system file checkers and resetters yesterday) I went to my wife's computer which runs the same version of Windows as mine).  We are both running Windows 22H2 and os build 19045.2846, for what that's worth.  The KernelBase files have identical file versions 10.0.19041.27788 and file sizes.  I went to the download site for JuiceboxPro which was provided by email.  Went through instructions for installing JuiceBoxPro on wife's computer including Adobe Air.  Both are running Air 33.1.1.744.  So that's identical and from what I can tell that's the correct version. 

Wife's computer was running JuiceboxPro 1.5.1 successfully within 5 minutes of starting install.  Mine still dies leaving the artifacts I have previously posted in the event viewer. 

Two computers.  Identical Windows versions.  Identical JuiceboxPro installations.  Same version of Adobe AIR.   Appears to be the same version of kernelbase.dll.  On one JuiceboxPro fails.  On the other it doesn't.   

I will reset Windows on the failing machine as time permits.  Any other suggestions appreciated.

Afterwards, tried replacing the kernelbase.dll file but the system32 directory is "locked up' by the trusted installer and won't allow any changes without jumping through security hoops that I don't have time for.  The file on my wife's Windows 10 computer is the same date and size (must be the same Windows update).  The file on a Windows 11 computer where JuiceboxPro still works is double the size.  Even if I could copy it to my Windows 10 computer it probably would not work. 

I suspect you will see a lot of these reports as others install Windows updates on their Windows 10 computers.

A couple of days ago I went to run JuiceboxBuilder Pro for the first time, in a "long time".  Had version 1.51.  It failed:  screen showed, Adobe Air showed and closed and then Juicebox disappeared.  Looking at event viewer I saw:

Faulting application name: JuiceboxBuilder-Pro.exe, version: 0.0.0.0, time stamp: 0x630f524c
Faulting module name: KERNELBASE.dll, version: 10.0.19041.2846, time stamp: 0xb9bbdd8b
Exception code: 0xe06d7363
Fault offset: 0x00138fc2
Faulting process id: 0x2e20
Faulting application start time: 0x01d96d77babe4b23
Faulting application path: C:\Program Files (x86)\JuiceboxBuilder-Pro\JuiceboxBuilder-Pro.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 7c456bc3-8f5c-4963-8e79-b4a67c89b576
Faulting package full name:
Faulting package-relative application ID:

This message has stayed consistent across my efforts to resolve the issue. 

I reinstallled AIR and verified that I have the correct version.  I've gone through the various Microsoft "fixes" for corrupt system files including DISM and SFC things.  I even copied kernelbase.dll from a similar computer that is on the same update cycle as my main one.  No luck:  JuiceboxBuilder pro fails with the dll related message.

What I suspect is that some recent update of Windows 10 provided a corrupt file.  No, I should say a kernelbase.dll that won't work with Juiceboxbuilder-Pro.  Maybe someone at Juicebox could test this on a recently updated Windows 10 computer. 

I do have one Windows 11 computer where JuiceboxBuilder seems to work.  I will go check out the dll there. 

I will say that the SimpleViewer folks got back to me quickly with the download link and installation instructions.  But it looks to me like that's not the problem.  Windows probably introduced a dll change that's not compatible with Air or JuiceboxBuilder-Pro or both.

7

(496 replies, posted in Juicebox-Pro Support)

There have been quite a few requests for webp support already but I'll add mine.  I'm working on the Drupal Juicebox module trying to get it ready for Drupal 10.  All versions of Drupal below 10 expire at the end of this year so there is understandably quite a rush to get this done.  We already have a test version of Juicebox for Drupal 10 running and are trying to iron out any kinks.  Since Drupal now supports webp we'd like to also. 

It appears from one answer in your forums that your Javascript program would display a webp image if it was listed in the xml file.  But your JuiceboxBuilder-Pro (and I'm assuming LITE) doesn't support building an xml with webp images.  So a separate step would be needed to "edit" the xml.  And the user would have had to created two sets of files:  one jpg and the other webp.  This would be time-consuming and error prone.

Edit:  update.  After getting JBPRO working (another topic) I created a gallery with a handful of images ... all jpgs.  Tested and it worked fine.  Used photoshop to create webp versions of all the images and corresponding thumbnails.  Used an editor to edit the xml file changing all ".jpg" to ."webp."  That's straightforward enough.  Loaded both versions of the gallery and all the jpg and webp images to a local Drupal test site.  Both versions of the gallery display fine.  So this works.  It would still be so much better if JBPRO supported webp from the outset.

8

(1 replies, posted in Tricks and Tips)

How do I change my password on  your site?  Lastpass hacked and I am trying to change my password on all sites.  After 15 minutes of looking around I can find no way to do it on the Juicebox site.

Thank you.  Any increased attention to the browser issue would be helpful.  Usually programmers can modify "labels" even if the underlying logic is left alone.  Where it says "View in Browser" now it could just say "View in Firefox or Chrome (with appropriate settings)" ... but sigh I know that's a bit wordy and subject to changes beyond your control.

Oh man!  Thank you.  If there is any way you can highlight this or emphasize it, I would bet there are a LOT OF USERS who would appreciate seeing it.  I just blew through 2 hours trying to diagnose this before stumbling across it in Forums.   

Maybe even change the Juicebox Builder Pro program where it says "view in browser" to put some kind of warning in. 

I realize that this Forum posting is a year and a half old, but that just means that a large majority of users are either not going to be able to use the preview or will have to tweak their settings.

One month after the last post another user (me) had the same problem with Firefox.  Seems that any "old" user of Firefox will have it.  Once I found the solution it took five minutes to fix it on the two computers I was using.  So another "thanks" to add to your collection.  I wonder if it would be possible to make the error message more helpful in future versions?  Or somehow communicate the problem and possible solution to registered, paid users.

http://fkelly.org

using the Drupal Juicebox module with galleries uploaded from the PC version of Juicebox Pro.  Many galleries, all accessed from Drupal Menus.  The tab named Sculpt and Print contains my wife's sculpture albums.  The albums are presented using a Drupal view which allows me to assign a "representative image" to each album and to order the albums any way I want.

13

(496 replies, posted in Juicebox-Pro Support)

I'll confess that I haven't read through all 17 pages of feature requests.  So feature request #1 would be to restructure these to make them easier to follow, maybe separate into "already accomplished", "not feasible or desirable" and "pending". 

Second, I found this response to a request from back in 2012:
"It is not possible to change the default values in JuiceboxBuilder-Lite/JuiceboxBuilder-Pro (such as the selected 'Resize Images' checkbox).
It is also not possible to automatically load a Preset on launching the application."

Assuming this is still true:  could you reconsider.  For me, at least, not being able to set a preference to read the captions from IPTC data creates a lot of extra work.  This, and a few other "preferences" such as:  setting Gallery title above the album and centering, positioning caption below the image and centering, always setting autoplay on, would be GREAT to be able to set as standard preferences which would always be on unless explicitly overridden.  Maybe have a default.xml file that would always be loaded and then could be overridden by one of the xml files shown in presets.

14

(12 replies, posted in Juicebox-Pro Support)

Coming back to this topic after creating a bunch of galleries with these observations on captions.  And customizations. 

My wife and I manage our photos in Lightroom.  We add captions there and take the additional step of writing the metadata to the base files.  This is essential in my view, unless you like losing your work.  Tag and keyword the files too.  Then select groups of images to go in a Gallery.  Use export to put them in an /export/galleryname1 ... n folder safely outside the Lightroom catalog area.  Then verify results in Windows file explorer.  If you set the view for picture type folders to detail and show the title field you can verify that captions got written successfully. 

Now bring up Juicebox Pro.  Create a new gallery.  Bring in the files from /export/galleryname_n.  Now here's issue number one.  Unless you have the preset set to have captions use the IPTC caption field at this point, Juicebox will create the files for the gallery without embedding the metadata caption.  So, if I create the gallery in a directory /jbox/galleryname_n and look at the folder in windows file manager I see nothing in the title field (which is really the caption field).  You can set a preset to use the IPTC caption for the caption and, if you remember to load this first, the files will be created in the /jbox folders with the captions metadata. 

This leads to two questions ... which I will turn into feature requests if you confirm this.  1.  is there a way to set default preferences that will ALWAYS apply, even to new Galleries and unless explicitly overridden.  In other words so that you don't have to remember to load your preset every time.  What happens to us is that we occasionally forget to load the captions.xml preset.  Bring in the files.  Reorder the files by dragging them around in the order we intend for the Gallery.  Publish it and notice that captions aren't there.  Since Juicebox has not created files with captions metadata we can't just reread the files after changing that option.  And 2. which is not so much a question as a request for confirmation.  The files created for the juicebox images directory, if captions are off in presets, don't include metadata.  It would be really useful if they did, so you wouldn't have to delete everything and start over, including dragging the files around into the right order all over again.

In other words, the refresh that you mentioned in your 2016-06-24 response only works if Juicebox has copied over the image files with caption metadata and as far as I can tell it doesn't do that if captions are "off". 

It would also be helpful if you could shift-click or ctrl-click the list of images in a Gallery in order to delete them.  Again, I'll consolidate this into a feature request if there is no work around for this.

Ryan is always very helpful over in Drupal.  I'm not sure you need his help on this though.  If I understand the requirements, you want to have different audio files for different albums?  The audio file that gets used is specified in the xml file that's generated when you create the album using juicebox builder on your PC.  A section from one of mine looks like this:

<?xml version="1.0" encoding="UTF-8"?>

-<juiceboxgallery playAudioOnLoad="true" audioUrlOgg="01 Time The Conqueror.ogg" audioUrlMp3="01 Time The Conqueror.mp3" autoPlayOnLoad="true" enableAutoPlay="true" resizeOnImport="false" importTitle="NONE" showImageNumber="false" captionHAlign="CENTER" importCaption="IPTC" captionPosition="BELOW_IMAGE">


-<image sourcePath="D:\jboxgalleries\frank\base\frank-1.jpg" linkTarget="_blank" linkURL="images/frank-1.jpg" thumbURL="thumbs/frank-1.jpg" imageURL="images/frank-1.jpg">


-

For Firefox at least you need a mp3 version and a ogg version.  There are free mp3 to ogg converters on line. 

I generate the files (jpgs, xml, audio) then ftp them to my Drupal site.  Use the embed in Drupal instructions that are listed on this site. 

To keep things manageable, I have a /jboxmusic directory on my sites/default/file directory in Drupal  Drupal treats this as a public directory and the javascript program is able to find the music files.

16

(7 replies, posted in Juicebox-Pro Support)

"Google seems to be slowing discontinuing support for the Picasa Web API. Existing galleries (created prior to Google acquiring Picasa) still display fine but new galleries (created or modified since the acquisition) can no longer be accessed via the API."

Google acquired Picasa years and years ago.  At first Picasa Web albums was their primary product for storing Photos on the web.  They've since moved to Google Plus, also tried using Google Drive, then to several iterations of Google Photos.  They do this arbitrarily and without any consulting with users, you just get a notice that things are changing.  Users protest in Forums and Google ignores them.  While your mileage may vary, a year go I saw the writing on the wall and moved my 6000+ pictures in 50+ albums from Picasa and Google, to being managed under Lightroom.  Then create Juicebox albums and move copies up to a Drupal 8 site, using the Juicebox module there.  You can keep full sized images under Lightroom, then resize them as needed for the web albums.  I assume this would work just fine for WP as it does in Drupal.  Just upload the albums and images with a FTP client and let PicasaWeb die a well deserved dusty death.

17

(12 replies, posted in Juicebox-Pro Support)

One thing I noticed re. captions.  Let's say you embed them in the photo's metadata using Lightroom or Photoshop.  The Gallery building process in JB Pro will use the captions.  Fine.  Now you do some more editing of captions in Lightroom.  Then  you go back and edit the Gallery in JB Pro.  Maybe eliminate and/or reorder the photos.  It does not appear to me that JB picks up the changed captions from the metadata.  The captions get stored in the xml file and that does not get regenerated, as far as I can see.  It would be better to regenerate the xml file from scratch for each modification, picking up any changed data from the jpgs. 

It would also be cool if caption editing in JB could update the jpg file metadata but I realize that's both a feature request and a bit of a stretch for the product.

18

(15 replies, posted in Juicebox-Pro Support)

Stuart;
Nice to meet you.  Yes, the bats were eerie, spectacular too.

I haven't used views for this at all and am not sure I can help.  I think your albums content type is the equivalent to what I am calling a Juicebox Gallery content type.  The only field I have in mine is a body field.  I paste the embed code into it like this example:

<!--START JUICEBOX EMBED--><script src="/drupal8/sites/all/libraries/juicebox/juicebox.js"></script><script>
    new juicebox({
        baseUrl : '/drupal8/sites/default/files/jboxgalleries/rainforest/',
        containerId: 'juicebox-container',
        galleryWidth: '100%',
        galleryHeight: '100%',
        backgroundColor: '#222222'
    });
    </script>
<div id="juicebox-container">&nbsp;</div>
<!--END JUICEBOX EMBED-->

So, I have a content item named Australia Rainforest that is of the content type Juicebox Gallery.  I set a url for that album of /rainforest so I don't have to mess around with accessing "node" numbers.  Maybe tomorrow I'll mess around with setting up a view to point to /rainforest and see what I can do.  When you say "lightbox" what are you referring to?  The initial image in a Juicebox Gallery or something from the lightbox module.  I'm not even sure lightbox works with Drupal 8, I had it installed under Drupal 7 but there's a whole bunch of stuff that doesn't work in 8 yet.

19

(15 replies, posted in Juicebox-Pro Support)

The Pro features work within Drupal 8.  Yes.  Autoplay works and there is no 50 image per Gallery limit. 

However (and correct me if I'm wrong) the Juicebox module on Drupal 8 has minimal interaction with this.  Basically, Juicebox builder builds an image and a thumbnails directory and a file named config.xml which has your gallery settings and links to your image files.  The gallery presentation uses the juicebox.js file which gets installed on your Drupal site as part of the juicebox Drupal 8 module.

I used Drupal to create a separate "Juicebox Gallery" content type and used the embed code that's discussed on this site tailored for each separate Gallery, so creating individual Galleries was pretty much cookie cutter.  Also used Drupal's menu features to make the galleries accessible to site visitors.

One consideration ... ignore if you wish ... is that you might want to consider putting your images under your public files directory in Drupal.  That way you can re-use them in other content types and access them from CKEDITOR and IMCE when creating those content types. 

fkelly.org has my galleries.

20

(1 replies, posted in Juicebox-Pro Support)

For a few months I've been running Juicebox galleries successfully on my Drupal8 site.  I have the galleries located at:

public_html/juiceboxgalleries

There is a config.php in this directory, then subdirectories for each gallery which have a subdirectory for images, one for thumbnails and the config.xml file uploaded from my PC.  Cool. 

I've been trying to find a way to allow my content types on the site to BOTH upload images or find images on the site if they are already there.  Drupal8 comes with ckeditor built in.  You can add the IMCE editor, which provides for file browsing both on your web site and your local PC.  However, the IMCE file browsing seems to be limited to just public directories ... which are usually something like /drupal8/sites/default/files ... (bear with me).  It looked to me like IMCE could also be tricked into browsing a private directory if I used Drupal8's setting file to identify one.  So a couple hours ago, I made /jboxgalleries into a private directory.   Little knowing as you will see.

Doing this didn't fix the IMCE issue ... it is still limited to the public directories.  So I gave up on this and put settings.php back where it was with no private directory.

Fine:  except now regression testing my galleries, only the first out of 50+ worked.  The rest could not find the config.xml file.

After going through cpanel, and resetting cache numerous times both in Drupal and in my browser, I stumbled across an .htaccess file in my jboxgalleries directory.  Renamed this and suddenly my galleries all worked again.  It was protecting the directory (private it thought) from being accessed by apache.  Why the first gallery worked is beyond me.  Not sure anyone else would stumble into this but thought I'd post it:  watch for stray htaccess files created behind the scenes by cpanel.

Also occurs to me that it might be a good idea to put jboxgallery directory in the sites/default/files area so that it could be served up as public.  That way you could use all your nice jpgs in content types on your Drupal page and browse them with IMCE while creating the content.  Easy enough to move all the files in one swell foop, but I'd also need to spend a couple of hours individually changing the embedded text (the baseurl) to point to the new area.

My pleasure to help.  The juicebox support people (as well as on Drupal) here have been really responsive and got me going, so I'm glad to give back.

For what it's worth, since this thread started Google has announced the end of support for both Picasa Desktop and Picasaweb.  Supposedly there will be a web place where you can still access Picasaweb pictures but how that plays out is an unknown.  The google forums are filled with people looking for a way out.  I've recommended Juicebox over there.  You might see a nice influx of new business from that (not my recommendation per se but just the fact that a lot of people should be fleeing Google and its incompetent administration of photos and its total focus on smartphone photo support).

As someone who has traveled this road ... converting from Photos on Google Photos (aka, Picasaweb aka Google+ Photos) your path of least resistance and most functionality might be to just arrange the photos in folders on your desktop computer, then use Juicebox Builder to build your galleries from the pics on your desktop and upload the appropriate galleries to your Drupal web site.  This way you are not (long term) held hostage to whatever access decisions Google makes.  The Picasa desktop product provides a good way to get your Google Photos files arranged on your desktop prior to making Juicebox Galleries out of them.  I had a pretty productive workflow going to create 50+ Juicebox galleries on my Drupal 8 web site ... organize the folders, use juicebox builder to create galleries, upload selected files to your site using FTP.  You really only need to upload the xml file and images and thumbnails directories to your site if you have the Drupal juicebox module set up there.  I created a menu for all my galleries too.

fkelly.org for an example.

23

(1 replies, posted in Juicebox-Pro Support)

Never mind.  SOLVED
I know that rotation of images is a minefield with inconsistencies throughout various software programs.  I've read up on it and thought I had a workflow that would deal with it.  But not completely it appears. 

I have been creating juicebox galleries and uploading to a Drupal 8 site. 

try, fkelly.org where you should see a menu of the Galleries I've done. 

I manage my image files with a variety of tools including Photoshop, Picasa, Windows file explorer and something called xnconvert when there is no other way to fix metadata.  Sometimes Picasa shows a file in portrait orientation but then has the thumbnail in landscape, if I can use those terms loosely.  It will show that the file is rotated 90 degrees under its properties.  In photoshop the same file, under file info will have metadata showing an orientation value of 1.  I've found that having files like this is a recipe for madness in trying to publish them to a juiceboxgallery.  For problematic files what I do is run them through xnconvert and strip out the metadata.  Usually this works.  Even Picasa can then deal with the files and prepare a proper thumbnail. 

But sometimes the madness is not resolved.  To see what I mean go into my gallery:

fkelly.org ... then select the Melbourne gallery.  Turn off autoplay and scroll through until you get to file:
20131023_142325.jpg 
It's file 109 of 127. 
In the gallery it shows "landscape". 

When I look at the same file in Cpanel it shows portrait:  in both the images and images/large directories.

a direct url to see the file is:

http://fkelly.org/drupal8/jboxgalleries … 142325.jpg 

even there it is "portrait". 

The section of the xml file that references it is:

image imageURL="images/20131023_142325.jpg"
    thumbURL="thumbs/20131023_142325.jpg"
    linkURL="images/large/20131023_142325.jpg"
    linkTarget="_blank"
    sourcePath="D:\Pictures\Australia melbourne\20131023_142325.jpg"
    largeImageURL="images/large/20131023_142325.jpg"

I left out the opening and closing brackets just in case.

When I view the file in Picasa, or Photoshop or even in Juiceboxbuilder, it's fine.  I have stripped out the metadata ahead of time so there is no orientation field.  I have confirmed this.  I've cleared Firefox's cache.  I've cleared Drupal's cache.  I've deleted the whole directory using my FTP client then reloaded it after confirming the juiceboxbuilder had rebuilt it the gallery with the latest info.  No joy.  I even looked at the Gallery in Internet Explorer with the same results.  And there are several other files doing the same thing to me or I'd probably just delete it and forget it. 

Any ideas?

Never mind.  SOLVED
I had originally embedded the gallery in a content item in Drupal using directory X.  It was one of the first I did.  Then I switched to a new workflow and set of locations for the galleries.  So, I was putting the revised Galleries in directory Y.  No wonder I didn't see any changes.  Changed the content item and all is good.  Rotation is still a P.I.T.A. but it ain't your doing.

Happy new years.

24

(8 replies, posted in Juicebox-Pro Support)

RewriteCond %{REQUEST_URI} !/jboxgalleries/config.php$

in the drupal htaccess did the trick.  Thank you!


For what it's worth, I'm thinking that from a design, operations, and performance standpoint I may be better off putting the files on my own (hosted, inmotion,) server rather than drawing them from Google each time a Gallery is accessed.  I have >6000 photos on google divided in 88 albums (folders).  I have the same photos neatly arranged on my home PC and can use juiceboxbuilder to generate galleries quickly.  This way too all thumbnail generation is done once on the PC, which has plenty of resources and won't incur server overhead other than for presentation.  It's easy enough to set up menus listing the galleries with Drupal.  With ftp I can go from creating a gallery in builder to accessing it on the server in probably 10 minutes or less.  It's terrific.

I basically have set up a custom content type in Drupal just for juicebox galleries.  I can put the listing in a special menu just for galleries.  Eventually I can tag the individual galleries and use Drupal views to slice and dice however I want.

For what it's worth, Drupal has long been a dead end for galleries.  There are a couple of contributed modules I've used on Drupal 7 but (a) they are buggy and not supported and (b) there's little prospect they will be updated to run in Drupal 8. I think juicebox could be just a GREAT solution and I'll post this over in the Drupal forums when I get a few more examples done.

25

(15 replies, posted in Juicebox-Pro Support)

Working great.  and thanks for working on Christmas!   

Frank