MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-PIR-Sensor - White Screen

    Scheduled Pinned Locked Moved Troubleshooting
    90 Posts 24 Posters 142.2k Views 25 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T Offline
      Them Russians
      last edited by paviro

      @zichao92

      Random question for you:

      when i try to do an “npm install” in the “MMM-PIR-Sensor” folder, i get the following error:

      Magic-Mirror-Module-PIR-Sensor@1.1.0 postinstall /home/pi/MagicMirror/modules/MMM-PIR-Sensor
      electron-rebuild -e …/…/node_modules/electron-prebuilt
      An unhandled error occurred inside electron-rebuild
      Unable to find electron-prebuilt’s version number, either install it or specify an explicit version
      Error: Unable to find electron-prebuilt’s version number, either install it or specify an explicit version
      at _callee$ (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/cli.js:74:17)
      at tryCatch (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/regenerator-runtime/runtime.js:63:40)
      at GeneratorFunctionPrototype.invoke [as _invoke] (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/regenerator-runtime/runtime.js:337:22)
      at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/regenerator-runtime/runtime.js:96:21)
      at GeneratorFunctionPrototype.tryCatcher (/home/pi/node_modules/bluebird/js/release/util.js:16:23)
      at PromiseSpawn._promiseFulfilled (/home/pi/node_modules/bluebird/js/release/generators.js:97:49)
      at /home/pi/node_modules/bluebird/js/release/generators.js:201:15
      at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/cli.js:197:4)
      at Module._compile (module.js:570:32)
      at Object.Module._extensions…js (module.js:579:10)
      at Module.load (module.js:487:32)
      at tryModuleLoad (module.js:446:12)
      at Function.Module._load (module.js:438:3)
      at Module.runMain (module.js:604:10)
      at run (bootstrap_node.js:394:7)
      at startup (bootstrap_node.js:149:9)
      npm ERR! Linux 4.4.38-v7+
      npm ERR! argv “/usr/bin/nodejs” “/usr/bin/npm” "install"
      npm ERR! node v6.9.2
      npm ERR! npm v3.10.9
      npm ERR! code ELIFECYCLE
      npm ERR! Magic-Mirror-Module-PIR-Sensor@1.1.0 postinstall: electron-rebuild -e ../../node_modules/electron-prebuilt
      npm ERR! Exit status 255
      npm ERR!
      npm ERR! Failed at the Magic-Mirror-Module-PIR-Sensor@1.1.0 postinstall script ‘electron-rebuild -e …/…/node_modules/electron-prebuilt’.
      npm ERR! Make sure you have the latest version of node.js and npm installed.
      npm ERR! If you do, this is most likely a problem with the Magic-Mirror-Module-PIR-Sensor package,
      npm ERR! not with npm itself.
      npm ERR! Tell the author that this fails on your system:
      npm ERR! electron-rebuild -e …/…/node_modules/electron-prebuilt
      npm ERR! You can get information on how to open an issue for this project with:
      npm ERR! npm bugs Magic-Mirror-Module-PIR-Sensor
      npm ERR! Or if that isn’t available, you can get their info via:
      npm ERR! npm owner ls Magic-Mirror-Module-PIR-Sensor
      npm ERR! There is likely additional logging output above.
      npm ERR! Please include the following file with any support request:
      npm ERR! /home/pi/MagicMirror/modules/MMM-PIR-Sensor/npm-debug.logv
      

      Any idea what could cause this? I suspect my white screen is because the install failed.

      I have tried removing the “MMM-PIR-Folder” from my directory and running the clone command from github again to start fresh, but still face this issue.


      Note from admin: Please use Markdown on code snippets for easier reading!

      1 Reply Last reply Reply Quote 0
      • B Offline
        bungee09
        last edited by

        Similar problem to @Them-Russians when running npm install. Then after starting MM using pm2 I get a white screen. Checking the pm2 error logs I see the following error with a module version mismatch: “Expected 50, got 49”.

         0|mm       | App threw an error during load
         0|mm       | Error: Module version mismatch. Expected 50, got 49.
         0|mm       |     at Error (native)
         0|mm       |     at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
         0|mm       |     at Object.Module._extensions..node (module.js:583:18)
         0|mm       |     at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
         0|mm       |     at Module.load (module.js:473:32)
         0|mm       |     at tryModuleLoad (module.js:432:12)
         0|mm       |     at Function.Module._load (module.js:424:3)
         0|mm       |     at Module.require (module.js:483:17)
         0|mm       |     at require (internal/module.js:20:19)
         0|mm       |     at bindings (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bindings/bindings.js:76:44)
        

        Tried @James solution using npm rebuild but changed the version parameter to 50. Still no luck.

          npm rebuild --runtime=electron --target=1.3.4 --disturl=https://atom.io/download/atom-shell --abi=50
        

        Any help would be much appreciated before I reformat my sd card and start from scratch.

        yawnsY 1 Reply Last reply Reply Quote 0
        • yawnsY Offline
          yawns Moderator @bungee09
          last edited by

          @bungee09
          npm list and look for electron to find the right version. Then rerun the rebuild command with replaced version number

          B 1 Reply Last reply Reply Quote 0
          • B Offline
            bungee09 @yawns
            last edited by

            @yawns
            Works a treat. Thanks!

            T 1 Reply Last reply Reply Quote 0
            • T Offline
              Them Russians @bungee09
              last edited by paviro

              @bungee09 Did you get the npm install to work on the “MMM-PIR-Sensor” directory? Or did you just run the npm list to get the version of electron and then run npm rebuild --runtime=electron --target=1.3.4 --disturl=https://atom.io/download/atom-shell --abi=50 with the right version?

              Which directory were you in when you ran the rebuild?

              Sorry - i’m at work now, so dont have the Pi with me, but have been having issues with this for a week now, so i’m really hoping that this works for me :)

              B 1 Reply Last reply Reply Quote 0
              • B Offline
                bungee09 @Them Russians
                last edited by

                @Them-Russians - I feel your frustration! I spent a good few hours debugging this after installing and testing my PIR sensor. This is what eventually worked for me:

                I ran all the commands in the MMM-PIR-Sensor Directory.

                 cd ~/MagicMirror/modules/MMM-PIR-Sensor
                 npm list
                

                I found the electron version number to be “1.4.3” so updated target to 1.4.3. Also, updated abi to 50 in the following command as this was the expected value from the error message in pm2 logs.

                 npm rebuild --runtime=electron --target=1.4.3 --disturl=https://atom.io/download/atom-shell --abi=50
                

                As soon as the rebuild was complete…

                 cd
                 pm2 restart mm
                

                … to restart MagicMirror in pm2.

                I also found this link which described the same fix.

                Good luck!

                T 1 Reply Last reply Reply Quote 0
                • T Offline
                  Them Russians @bungee09
                  last edited by

                  @bungee09 Did your rebuild work successfuly? I got an error saying that i needed to have the latest versions of node.js and npm installed.

                  I believe I have node version 6.9.4. Is that what you were using?

                  After all this, i thought maybe i jacked up something, so i cleared out and reformatted the micro SD card. I reinstalled NOOBS and then got the Magic Mirror. Created the config.js file and ran the mirror without issue. Immediately after that, i cloned the PIR module and tried to run an “npm install” which failed, and so did the rebuild :(

                  B 2 Replies Last reply Reply Quote 0
                  • B Offline
                    bungee09 @Them Russians
                    last edited by

                    @Them-Russians The rebuild was successful for me using exactly the method I described above. I don’t have my pi with me currently but I only installed node for the first time last week so I definitely don’t have an old version. I can check the exact version number when I get home for you.

                    1 Reply Last reply Reply Quote 0
                    • B Offline
                      bungee09 @Them Russians
                      last edited by

                      @Them-Russians
                      BTW? Did you install node in the main MagicMirror directory first before installing dependencies in the MMM-PIR-Sensor directory?

                       cd ~/MagicMirror
                       npm install
                      
                      T 1 Reply Last reply Reply Quote 0
                      • T Offline
                        Them Russians @bungee09
                        last edited by

                        @bungee09 I did not do that install in the Magic Mirror folder. I ran the “curl” command from the github site for the MagicMirror, set up config.js, and then immediately got the PIR module.

                        Do you think i could run the npm install on the MagicMirror folder now, and try again with the rebuild, or would i have to clear my SD card and reinstall everything and start from scratch?

                        yawnsY B 2 Replies Last reply Reply Quote 0
                        • yawnsY Offline
                          yawns Moderator @Them Russians
                          last edited by

                          @Them-Russians said in MMM-PIR-Sensor - White Screen:

                          @bungee09 I did not do that install in the Magic Mirror folder. I ran the “curl” command from the github site for the MagicMirror, set up config.js, and then immediately got the PIR module.

                          Do you think i could run the npm install on the MagicMirror folder now, and try again with the rebuild, or would i have to clear my SD card and reinstall everything and start from scratch?

                          Yes, running npm install now will work and it is required.

                          1 Reply Last reply Reply Quote 0
                          • B Offline
                            bungee09 @Them Russians
                            last edited by

                            @Them-Russians
                            npm install in the main MM directory. Then npm install in the PIR sensor directory to install dependencies. If it fails then npm rebuild as above using the correct electron version number and abi.

                            T 1 Reply Last reply Reply Quote 0
                            • T Offline
                              Them Russians @bungee09
                              last edited by

                              @bungee09 The main MagicMirror directory, or the module directory within MagicMirror?

                              B 1 Reply Last reply Reply Quote 0
                              • B Offline
                                bungee09 @Them Russians
                                last edited by

                                @Them-Russians In the main directory

                                 cd ~/MagicMirror/
                                 npm install && npm start
                                
                                T 1 Reply Last reply Reply Quote 0
                                • T Offline
                                  Them Russians @bungee09
                                  last edited by Them Russians

                                  @bungee09 @yawns When i ran the “npm install” in the MM directory, i got this error:

                                  npm warn grunt-yamllint@0.2.0 requires a peer of grunt@~0.4.0 but none was installed

                                  I googled the error and it looks like it shouldnt be an issue, but when i tried doing an install in the PIR directory (it failed), so did the rebuild with the updated electron version number (mine was 1.5.6).

                                  I got the same error when trying to run the rebuild

                                  Failed at the epoll@0.1.20 install script ‘node-gyp rebuild’
                                  Make sure you have the latest version of node.js and npm installed.

                                  Sorry for all the posts on here, but do you have any thoughts? I update node.js and npm to the most recent versions, so i dont think that what is broken for me :(

                                  When i try to run the mirror, here is the error i get before the white screen:

                                  magicmirror@2.1.0 start /home/pi/MagicMirror
                                  electron js/electron.js “dev”
                                  Starting MagicMirror: v2.1.0
                                  Loading config …
                                  Loading module helpers …
                                  No helper found for module: alert.
                                  Initializing new module helper …
                                  No helper found for module: clock.
                                  No helper found for module: compliments.
                                  No helper found for module: currentweather.
                                  WARNING! Could not load config file. Starting with default configuration. Error found: Error: Could not locate the bindings file. Tried:
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/default/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/compiled/6.5.0/linux/arm/epoll.node
                                  Loading module helpers …
                                  No helper found for module: alert.
                                  Initializing new module helper …
                                  No helper found for module: clock.
                                  No helper found for module: compliments.
                                  No helper found for module: currentweather.
                                  App threw an error during load
                                  Error: Could not locate the bindings file. Tried:
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/default/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/compiled/6.5.0/linux/arm/epoll.node
                                  at bindings (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bindings/bindings.js:88:9)
                                  at Object. (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/epoll.js:1:116)
                                  at Module._compile (module.js:556:32)
                                  at Object.Module._extensions…js (module.js:565:10)
                                  at Module.load (module.js:473:32)
                                  at tryModuleLoad (module.js:432:12)
                                  at Function.Module._load (module.js:424:3)
                                  at Module.require (module.js:483:17)
                                  at require (internal/module.js:20:19)
                                  at Object. (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/onoff/onoff.js:4:11)
                                  Whoops! There was an uncaught exception…
                                  { Error: Could not locate the bindings file. Tried:
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Debug/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Release/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/default/epoll.node
                                  → /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/compiled/6.5.0/linux/arm/epoll.node
                                  at bindings (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bindings/bindings.js:88:9)
                                  at Object. (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/epoll.js:1:116)
                                  at Module._compile (module.js:556:32)
                                  at Object.Module._extensions…js (module.js:565:10)
                                  at Module.load (module.js:473:32)
                                  at tryModuleLoad (module.js:432:12)
                                  at Function.Module._load (module.js:424:3)
                                  at Module.require (module.js:483:17)
                                  at require (internal/module.js:20:19)
                                  at Object. (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/onoff/onoff.js:4:11)
                                  tries:
                                  [ ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Debug/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Release/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Debug/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Debug/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/out/Release/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/Release/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/default/epoll.node’,
                                  ‘/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/compiled/6.5.0/linux/arm/epoll.node’ ] }
                                  MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
                                  If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
                                  Launching application.

                                  bheplerB 1 Reply Last reply Reply Quote 0
                                  • bheplerB Offline
                                    bhepler Module Developer @Them Russians
                                    last edited by bhepler

                                    @Them-Russians

                                    When i ran the “npm install” in the MM directory, i got this error:
                                    npm warn grunt-yamllint@0.2.0 requires a peer of grunt@~0.4.0 but none was installed

                                    Don’t worry about this one. The log file format is [process] [debug level] [error message]. In this case, “warn” is the level of severity of the message. If it said “err” then it would require your attention.

                                    I suspect your nodejs version is out of date. Try running this command: nodejs -v and then npm -v. It should spit out the version of node and NPM you’re using. Personally, I’m on v7.4.0 and v4.0.5 respectively. If you’re running a few versions behind, you may wish to run these commands from your home folder:

                                    curl -sL https://deb.nodesource.com/setup_7x | sudo -E bash -
                                    sudo apt-get install -y nodejs
                                    sudo npm install -g npm
                                    sudo npm install -g npm
                                    

                                    And yes, you may have to run that last command twice. For some reason, NPM sometimes requires a double-tap to update itself. Thank you, StackExchange.

                                    Run nodejs -v again and verify that your node version is up to snuff.

                                    T 1 Reply Last reply Reply Quote 0
                                    • T Offline
                                      Them Russians @bhepler
                                      last edited by

                                      @bhepler

                                      Hey there, thank you for the suggestion. updated both nodejs and npm to 7.4.0 and 4.0.5.

                                      I think removed the MMM-PIR-Sensor folder, grabbed it again from github, and then tried to run npm install on it, and the install failed again.

                                      An unhandled error occurred inside electron-rebuild
                                      Unable to find electron-prebuilt’s version number, either install it or specify an explicit version
                                      Error: Unable to find electron-prebuilt’s version number, either install it or specify an explicit version
                                      at _callee$ (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/cli.js:74:17)
                                      at tryCatch (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:63:40)
                                      at Generator.invoke [as _invoke] (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:337:22)
                                      at Generator.prototype.(anonymous function) [as next] (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:96:21)
                                      at Generator.tryCatcher (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bluebird/js/release/util.js:16:23)
                                      at PromiseSpawn._promiseFulfilled (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bluebird/js/release/generators.js:97:49)
                                      at /home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bluebird/js/release/generators.js:201:15
                                      at Object. (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/cli.js:197:4)
                                      at Module._compile (module.js:571:32)
                                      at Object.Module._extensions…js (module.js:580:10)
                                      at Module.load (module.js:488:32)
                                      at tryModuleLoad (module.js:447:12)
                                      at Function.Module._load (module.js:439:3)
                                      at Module.runMain (module.js:605:10)
                                      at run (bootstrap_node.js:420:7)
                                      at startup (bootstrap_node.js:139:9)

                                      I tried running the rebuild with my electron version number (1.5.7) but still no luck. Any thoughts on what else I could try? I am drawing a blank here, unfortunately.

                                      O B J 3 Replies Last reply Reply Quote 0
                                      • O Offline
                                        ostfilinchen @Them Russians
                                        last edited by

                                        @Them-Russians i also thought i have a higher electron-version. but i tried

                                        npm rebuild --runtime=electron --target=1.4.3 --disturl=https://atom.io/download/atom-shell --abi=50

                                        and it worked for me.

                                        1 Reply Last reply Reply Quote 0
                                        • B Offline
                                          bungee09 @Them Russians
                                          last edited by

                                          @Them-Russians I think you definitely need to rebuild electron. I can’t see what else is causing the issue. Try with different electron version numbers. Otherwise I’m all out of ideas. Sorry!

                                          1 Reply Last reply Reply Quote 0
                                          • J Offline
                                            Jopyth Moderator @Them Russians
                                            last edited by Jopyth

                                            @Them-Russians Try changing line 24 in package.json as shown here and reinstall with npm install in the module folder. Does that help?

                                            Also: Please continue discussion about install issues here. There is already info on how it can be solved. For other problems with the PIR-Sensor Module please open a new thread in the modeul troubleshooting section.

                                            Helpful sticky: How to troubleshoot

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 4 / 5
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy